如何在特定字符串之前匹配两个字符串

时间:2015-07-20 10:35:37

标签: java regex

我想在匹配的字符串之前匹配两个字符串

e.g  Rohan pillai J.

目前我正在使用:

pattern= (?=\w+ J[.])\w+
  

答案 - pillai

     

期望的答案 - Rohan pillai

2 个答案:

答案 0 :(得分:1)

你需要在尾随中展望未来:

(\w+) (\w+)(?= J\.)

请参阅演示https://regex101.com/r/wH0oU8/1

或者更一般地,您可以使用\s来匹配任何空格而不是空格:

(\w+)\s(\w+)(?=\sJ\.)

答案 1 :(得分:1)

取前两个名字的替代方法:

\w*\s\w*(?=\sJ\.)

Regex live here.

解释

\w*\s         # the first word (name) followed by space
\w*           # the second word (name)
(?=\sJ\.)     # must end with space and "J." - without taking it

提示:一般来说,为了逃避正则表达式元字符(如点.),我们使用反斜杠。如果你想强调那个角色,可以使用像[.]这样的字符类(如果你想在阅读这个正则表达式时让它更加明显)。