Day*_*ira 5 python regex regex-greedy regex-lookarounds
我有以下字符串:
NAME John Nash FROM California
NAME John Nash
我想要一个能够为两个字符串提取"John Nash"的正则表达式.
这是我试过的
"NAME(.*)(?:FROM)"
"NAME(.*)(?:FROM)?"
"NAME(.*?)(?:FROM)?"
Run Code Online (Sandbox Code Playgroud)
但这两个字符串都不起作用.
您可以在FROM和锚之间使用逻辑或$:
NAME(.*)(?:FROM|$)
Run Code Online (Sandbox Code Playgroud)
参见演示https://regex101.com/r/rR3gA0/1
在名称,它将匹配后,这种情况下FROM或string.But在您正则表达式到底,因为你使FROM可选的冷杉情况下,将名称后字符串的其余部分相匹配。
如果您想使用更通用的正则表达式,则最好根据您的名字可能性形状来创建正则表达式,例如,如果您确定自己的名字是由2个单词创建的,则可以使用以下正则表达式:
NAME\s(\w+\s\w+)
Run Code Online (Sandbox Code Playgroud)
演示https://regex101.com/r/kV2eB9/2