如何只检索NP
:
ROOT -> NP
更一般string1 -> string2
我需要提取string2
答案 0 :(得分:2)
在捕获组中->
后面的模式
另外,不要忘记在模式之前添加空格:
->\s(\w+)
请参阅演示:https://regex101.com/r/lP0lT3/1
您可以使用re.search
捕获第一组:
print(re.search(r'->\s(\w+)', my_string).group(1))
答案 1 :(得分:1)
\b
适用于边界,不适用于空白。要匹配空格,您必须使用\s
。
此处,代表单词,可选空格,' - >',可选空格,单词的正则表达式为:\w+\s*->\s*\w+
。
如果您只想捕获第二个单词,并为可选的初始空格添加规定,您可以使用:
m = re.match('\s*\w+\s*->\s*(\w+)', 'ROOT -> NP')
print(m.group(1))
给出NP