我想在匹配的字符串之前匹配两个字符串
e.g Rohan pillai J.
目前我正在使用:
pattern= (?=\w+ J[.])\w+
答案 - pillai
期望的答案 - Rohan pillai
答案 0 :(得分:1)
你需要在尾随中展望未来:
(\w+) (\w+)(?= J\.)
请参阅演示https://regex101.com/r/wH0oU8/1
或者更一般地,您可以使用\s
来匹配任何空格而不是空格:
(\w+)\s(\w+)(?=\sJ\.)
答案 1 :(得分:1)
取前两个名字的替代方法:
\w*\s\w*(?=\sJ\.)
解释
\w*\s # the first word (name) followed by space
\w* # the second word (name)
(?=\sJ\.) # must end with space and "J." - without taking it
提示:一般来说,为了逃避正则表达式元字符(如点.
),我们使用反斜杠。如果你想强调那个角色,可以使用像[.]
这样的字符类(如果你想在阅读这个正则表达式时让它更加明显)。