我有一堆以下(简化)格式的输入字符串:
"Hello my name is Dan"
"Hey my name is Tony"
"Hey|Hello|Hi my name is _"
我正在尝试编写一个正则表达式来从前面的示例中提取名称,但我不知道该怎么做。
我现在有
import re
r = re.search("(Hello|Hey|Hi) my name is .+")
我如何实际获取捕获的名称?
最佳答案
您实际上并不太远。您缺少正则表达式提供的文本,但我猜您实际上想编译一个供以后使用
import re
r = re.compile("(Hello|Hey|Hi) my name is (.+)")
...稍后
match = r.search(text)
if match:
name = match.groups()[1]
这里发生的事情是,所有被括号包围的东西都被视为捕获组。以后有匹配的可以引用一下。您还可以使用 (?P<name>PATTERN)
进行命名匹配。
关于python - 在正则表达式中查找匹配的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528230/