python - 在正则表达式中查找匹配的文本

标签 python regex

我有一堆以下(简化)格式的输入字符串:

"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/

相关文章:

python - 变量值中的继承 - Python

python - 如何解释 `scipy.stats.kstest` 和 `ks_2samp` 以评估 `fit` 的数据分布?

python - 将日期时间序列化为整数时间戳

javascript - 在方括号和非括号上拆分字符串

用于捕获命令标志和值的正则表达式

python - genfromtxt 加载按行排列的数据

python - 如何将列表中的每个元素除以 int?

java - 仅当 Java 中字符串中只有一位数字时才删除该数字

jquery - 正则表达式不忽略字母大小写

Python 正则表达式 : remove certain HTML tags and the contents in them