python - 重新使用与正则表达式匹配的用户输入字符串的一部分

标签 python regex string substring

我正在开发一个包含用户输入的 Python 项目,并且希望在输出中重用特定部分(即与正则表达式匹配的部分),因此对话框可能类似于:

程序:你好,你今天做了什么? 用户:我一直在 foobaring./我去了 foobaring./(任何其他包含“foobaring”的内容)[其中正则表达式为 '[a-zA-Z]*ing'] 节目:你喜欢胡闹吗?

..但无论用户输入什么事件,只要它以“ing”结尾,都会得到相同的结果。

我目前使用变量作为正则表达式和用户输入,如下所示:

variable = re.compile('regexp')

userinput = raw_input()

这样我以后就可以在 if 中使用它们。

TL;DR:是否有任何东西可以返回与正则表达式匹配的较大字符串的一部分的字符串

最佳答案

如果用括号将正则表达式括起来(使其成为一个组),则可以使用 match.group(1) 访问该组:

In [89]: import re

In [90]: gerund=re.compile(r'(?u)\b([\w-]+ing)\b')

In [91]: sentence='I went foobaring'

In [92]: match=gerund.search(sentence)

In [93]: match.group(1)
Out[93]: 'foobaring'

请注意,使用正则表达式查找动名词可能容易出错:

In [103]: sentence='Ming Tsai and I went sight-seeing'

In [104]: match=gerund.search(sentence)

In [105]: match.group(1)
Out[105]: 'Ming'

关于python - 重新使用与正则表达式匹配的用户输入字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316505/

相关文章:

python - 将 ID 与 Python 中 CSV 文件中的水果匹配

PHP RegEx 删除字符串中每个逗号后的空格

html - 如何基于正则表达式将CSS应用于div内容

Java 8 : Class. getName() 减慢字符串连接链速度

c# - LINQ 中棘手的字符串转换(希望如此)

regex - 根据文件名中的时间戳值复制文件

python - 当列表值包含其他列表中的特定字符时删除列表值

Python:将 GIF 转换为视频(mp4)

python - Pandas 将 0/1 数据框条目映射到列名称

Javascript如何跳过基于空格分隔符的拆分,除了特定序列后面的空格