我正在处理一个带有用户输入的Python项目,并希望在输出中重用特定部分(即匹配正则表达式的部分),因此对话框可能类似于:
计划:你好,你今天做了什么?
网友:我一直在嬉闹./我去了foobaring./(其他包含'foobaring'的东西)[正则表达式为'[a-zA-Z]*ing']
的地方
节目:你喜欢笨蛋吗?
..但无论用户输入什么活动,也会有相同的结果,只要它以“ing”结束。
我目前使用变量作为正则表达式和用户输入,如下所示:
variable = re.compile('regexp')
和
userinput = raw_input()
所以我可以在以后使用它们。
TL; DR:是否有任何返回字符串的内容,该字符串是与正则表达式匹配的较大字符串的一部分
答案 0 :(得分:2)
如果用括号括起正则表达式(使其成为一个组),则可以使用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'