我正在开发一个包含用户输入的 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/