Python正则表达式拆分为字符,除非后面加上括号

尼古拉斯

我有一个类似的字符串"F(230,24)F[f(22)_(23);(2)%[+(45)FF]]",其中除括号外的每个字符及其所包围的内容都代表一种指令。字符后可以跟可选括号中指定的可选参数列表。

这样的字符串我想将其拆分为['F(230,24)', 'F', '[', 'f(22)', '_(23)', ';(2)', '%', '[', '+(45)', 'F', 'F', ']', ']'],但是此刻我只能得到['F(230,24)', 'F', '[', 'f(22)_(23);(2)', '%', '[', '+(45)', 'F', 'F', ']', ']'](子字符串未正确拆分)。

目前我正在使用list(filter(None, re.split(r'([A-Za-z\[\]\+\-\^\&\\\/%_;~](?!\())', string))),这只是一堆乱七八糟的字符和一个负面的展望(list(filter(None, <list>))用于从结果中删除空字符串。

我知道这很可能是由于Python的re.split设计不按零长度匹配进行拆分,如此处所述但是我想知道什么是一个好的解决方案?有没有比这更好的方法re.findall

谢谢你。

编辑:不幸的是我不允许使用自定义程序包,如regex模块

智慧

您可以使用re.findall查找所有单个字符(可选),并在其后加上一对括号:

import re
s = "F(230,24)F[f(22)_(23);(2)%[+(45)FF]]"
re.findall("[^()](?:\([^()]*\))?", s)

['F(230,24)',
 'F',
 '[',
 'f(22)',
 '_(23)',
 ';(2)',
 '%',
 '[',
 '+(45)',
 'F',
 'F',
 ']',
 ']']
  • [^()] 匹配单个字符(括号除外);
  • (?:\([^()]*\))?表示?:由一对括号括起来的非捕获组(),用于?使该组成为可选的;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript,正则表达式将字符串拆分为括号之间的多维数组

来自分类Dev

正则表达式拆分为特定字符

来自分类Dev

正则表达式拆分的Python后面

来自分类Dev

Python 正则表达式:仅在花括号后面匹配字符串

来自分类Dev

用于拆分字符串的正则表达式,使用空格,除非在引号和括号内

来自分类Dev

Python正则表达式删除非Unicode字符

来自分类Dev

Python正则表达式删除非Unicode字符

来自分类Dev

Python正则表达式:拆分为空字符串的模式匹配

来自分类Dev

Python-通过正则表达式列表将字符串拆分为列表

来自分类Dev

正则表达式将长表达式字符串拆分为单个表达式的数组

来自分类Dev

Python-使用正则表达式将数字和字母拆分为子字符串

来自分类Dev

Python正则表达式re.findall-将字符串拆分为两个

来自分类Dev

Python正则表达式拆分

来自分类Dev

正则表达式拆分为多个匹配项

来自分类Dev

正则表达式,用于将参考字符串拆分为其组件

来自分类Dev

如何使用给定的正则表达式将字符串拆分为数组

来自分类Dev

使用正则表达式将字符串拆分为句子

来自分类Dev

正则表达式用于将字符串拆分为数组并替换数组的元素?

来自分类Dev

基于Java中的正则表达式拆分为不同的字符串

来自分类Dev

R正则表达式将字符串列拆分为多列

来自分类Dev

正则表达式将字符串拆分为句子

来自分类Dev

Java正则表达式将字符串拆分为不同的变量

来自分类Dev

Java:使用正则表达式将字符串拆分为char数组

来自分类Dev

如何使用给定的正则表达式将字符串拆分为数组

来自分类Dev

使用php中的正则表达式将字符串拆分为数组

来自分类Dev

正则表达式将字符串拆分为非常大的块

来自分类Dev

正则表达式将可变字符串拆分为groupdict

来自分类Dev

将 ruby 字符串拆分为多个散列的正则表达式

来自分类Dev

通过正则表达式将字符串拆分为列表

Related 相关文章

  1. 1

    Javascript,正则表达式将字符串拆分为括号之间的多维数组

  2. 2

    正则表达式拆分为特定字符

  3. 3

    正则表达式拆分的Python后面

  4. 4

    Python 正则表达式:仅在花括号后面匹配字符串

  5. 5

    用于拆分字符串的正则表达式,使用空格,除非在引号和括号内

  6. 6

    Python正则表达式删除非Unicode字符

  7. 7

    Python正则表达式删除非Unicode字符

  8. 8

    Python正则表达式:拆分为空字符串的模式匹配

  9. 9

    Python-通过正则表达式列表将字符串拆分为列表

  10. 10

    正则表达式将长表达式字符串拆分为单个表达式的数组

  11. 11

    Python-使用正则表达式将数字和字母拆分为子字符串

  12. 12

    Python正则表达式re.findall-将字符串拆分为两个

  13. 13

    Python正则表达式拆分

  14. 14

    正则表达式拆分为多个匹配项

  15. 15

    正则表达式,用于将参考字符串拆分为其组件

  16. 16

    如何使用给定的正则表达式将字符串拆分为数组

  17. 17

    使用正则表达式将字符串拆分为句子

  18. 18

    正则表达式用于将字符串拆分为数组并替换数组的元素?

  19. 19

    基于Java中的正则表达式拆分为不同的字符串

  20. 20

    R正则表达式将字符串列拆分为多列

  21. 21

    正则表达式将字符串拆分为句子

  22. 22

    Java正则表达式将字符串拆分为不同的变量

  23. 23

    Java:使用正则表达式将字符串拆分为char数组

  24. 24

    如何使用给定的正则表达式将字符串拆分为数组

  25. 25

    使用php中的正则表达式将字符串拆分为数组

  26. 26

    正则表达式将字符串拆分为非常大的块

  27. 27

    正则表达式将可变字符串拆分为groupdict

  28. 28

    将 ruby 字符串拆分为多个散列的正则表达式

  29. 29

    通过正则表达式将字符串拆分为列表

热门标签

归档