小编典典

Python 提取模式匹配

all

我正在尝试使用正则表达式来提取模式内的单词。

我有一些看起来像这样的字符串

someline abc
someother line
name my_user_name is valid
some more lines

我想提取单词my_user_name。我做类似的事情

import re
s = #that big string
p = re.compile("name .* is valid", re.flags)
p.match(s)  # this gives me <_sre.SRE_Match object at 0x026B6838>

我现在如何提取my_user_name


阅读 144

收藏
2022-07-01

共1个答案

小编典典

您需要从正则表达式中捕获。search对于模式,如果找到,使用 . 检索字符串group(index)。假设执行了有效的检查:

>>> p = re.compile("name (.*) is valid")
>>> result = p.search(s)
>>> result
<_sre.SRE_Match object at 0x10555e738>
>>> result.group(1)     # group(1) will return the 1st capture (stuff within the brackets).
                        # group(0) will returned the entire matched text.
'my_user_name'
2022-07-01