Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 正则表达式从菜单中捕获选项及其后面的字符串_Python_Regex - Fatal编程技术网

Python 正则表达式从菜单中捕获选项及其后面的字符串

Python 正则表达式从菜单中捕获选项及其后面的字符串,python,regex,Python,Regex,我想使用下面的正则表达式捕获每个选项及其后面的文本。奇怪的是,正则表达式只捕获带有一个数字的编号选项。感谢您的帮助 >>> s = '[a] Option a\n[1] Option 2\n[12] option 12' >>> re.findall('\[([a-z]|[\d\+])\]\s+(.*)?\\r?\\n?', s,re.M) [('a', 'Option a'), ('1', 'Option 2')] 删除+符号前的反斜杠,以免意外逃脱 经过

我想使用下面的正则表达式捕获每个选项及其后面的文本。奇怪的是,正则表达式只捕获带有一个数字的编号选项。感谢您的帮助

>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[([a-z]|[\d\+])\]\s+(.*)?\\r?\\n?', s,re.M)
[('a', 'Option a'), ('1', 'Option 2')]

删除+符号前的反斜杠,以免意外逃脱

经过一番修补之后,我最终得到了

>>> import re
>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[(\w+)\]\s+(.*)', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

删除+符号前的反斜杠,以免意外逃脱

经过一番修补之后,我最终得到了

>>> import re
>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[(\w+)\]\s+(.*)', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

删除+符号前的反斜杠,以免意外逃脱

经过一番修补之后,我最终得到了

>>> import re
>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[(\w+)\]\s+(.*)', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

删除+符号前的反斜杠,以免意外逃脱

经过一番修补之后,我最终得到了

>>> import re
>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[(\w+)\]\s+(.*)', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

[\d\+]
更改为
\d+
[\d\+]
将匹配单个数字或
+
符号

>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[([a-z\d]+)\]\s+(.*)?\\r?\\n?', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

[\d\+]
更改为
\d+
[\d\+]
将匹配单个数字或
+
符号

>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[([a-z\d]+)\]\s+(.*)?\\r?\\n?', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

[\d\+]
更改为
\d+
[\d\+]
将匹配单个数字或
+
符号

>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[([a-z\d]+)\]\s+(.*)?\\r?\\n?', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

[\d\+]
更改为
\d+
[\d\+]
将匹配单个数字或
+
符号

>>> s = '[a] Option a\n[1] Option 2\n[12] option 12'
>>> re.findall('\[([a-z\d]+)\]\s+(.*)?\\r?\\n?', s)
[('a', 'Option a'), ('1', 'Option 2'), ('12', 'option 12')]

这些似乎过于复杂。这将捕获您要查找的组

re.findall('\[(\w+)\]\s(\w*\s\w+)', s,re.M)

这些似乎过于复杂。这将捕获您要查找的组

re.findall('\[(\w+)\]\s(\w*\s\w+)', s,re.M)

这些似乎过于复杂。这将捕获您要查找的组

re.findall('\[(\w+)\]\s(\w*\s\w+)', s,re.M)

这些似乎过于复杂。这将捕获您要查找的组

re.findall('\[(\w+)\]\s(\w*\s\w+)', s,re.M)


啊。。+之前的反斜杠是无意的。谢谢你指出这一点。我也经常遇到这种情况。事实上,你还需要去掉
\d+
周围的方括号。啊。。+之前的反斜杠是无意的。谢谢你指出这一点。我也经常遇到这种情况。事实上,你还需要去掉
\d+
周围的方括号。啊。。+之前的反斜杠是无意的。谢谢你指出这一点。我也经常遇到这种情况。事实上,你还需要去掉
\d+
周围的方括号。啊。。+之前的反斜杠是无意的。谢谢你指出这一点。我也经常遇到这种情况。实际上,你还需要删除
\d+
周围的方括号。我最喜欢你的解决方案。仅供参考:
re.M
是完全多余的。@Stribizev:谢谢,/我不熟悉python。。。。无论如何更新了答案:)我最喜欢你的解决方案。仅供参考:
re.M
是完全多余的。@Stribizev:谢谢,/我不熟悉python。。。。无论如何更新了答案:)我最喜欢你的解决方案。仅供参考:
re.M
是完全多余的。@Stribizev:谢谢,/我不熟悉python。。。。无论如何更新了答案:)我最喜欢你的解决方案。仅供参考:
re.M
是完全多余的。@Stribizev:谢谢,/我不熟悉python。。。。无论如何,我更新了答案:)