Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在特定字符串之前匹配两个字符串_Java_Regex - Fatal编程技术网

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。这个看起来好多了。非常感谢。