Java 如何在特定字符串之前匹配两个字符串
我只想在匹配的字符串之前匹配两个字符串Java 如何在特定字符串之前匹配两个字符串,java,regex,Java,Regex,我只想在匹配的字符串之前匹配两个字符串 e.g Rohan pillai J. 目前我正在使用: pattern= (?=\w+ J[.])\w+ 答案-皮莱 想要的答案-罗汉·皮莱 您需要在尾随中进行前瞻: (\w+) (\w+)(?= J\.) 见演示 或者更一般地说,您可以使用\s匹配任何空格而不是空格: (\w+)\s(\w+)(?=\sJ\.) 采用前两个名称的备选方案: \w*\s\w*(?=\sJ\.) 解释: \w*\s # the first w
e.g Rohan pillai J.
目前我正在使用:
pattern= (?=\w+ J[.])\w+
答案-皮莱
想要的答案-罗汉·皮莱
您需要在尾随中进行前瞻:
(\w+) (\w+)(?= J\.)
见演示
或者更一般地说,您可以使用\s
匹配任何空格而不是空格:
(\w+)\s(\w+)(?=\sJ\.)
采用前两个名称的备选方案:
\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
提示:通常为了转义正则表达式元字符(如点
),我们使用反斜杠。如果您想强调该字符(如果您想在阅读此正则表达式时使其更可见),请使用类似于[.]
的字符类 我不建议使用regex101.com for Java,因为它不支持regex的完整Java风格。更好地使用。@realponsignist是的,你是对的,但这是一个简单的正则表达式。无论如何,谢谢你的建议!我建议使用此模式=\w*\s\w*(?)希望它能起作用。我已经检查了现场雷格克斯网站。。。试试看…@Pshemo。只是为了以后不要误导概念,虽然这不是一条规则。我对你的答案进行了一些编辑,以将“避免使用[.]
”这可以解释为“我们不应该不惜一切代价使用[.]
”-[.]
几乎永远无效”改为更中性的内容。希望你不介意。@Pshemo。这个看起来好多了。非常感谢。