java正则表达式问题,如何解决这个问题

时间:2015-03-12 16:12:35

标签: java regex

String pattern = "\\b(\\w+)[&|\\/| ][\\w+]*";

Test String: val Hello/ World - fail Hello/World - pass Hello&World - pass Hello World - pass Hello World/ World - fail

if(val.matches(pattern)){
   //do something
}

第一&最后一个模式Hello/ World& Hello World/ World失败了,我在正则表达式中遗漏了什么吗?

1 个答案:

答案 0 :(得分:2)

\\b(\\w+)[&\\/ ]+\\w+

                 ^^

该量词修复了它。参见演示。

https://regex101.com/r/iS6jF6/23

failed案例的问题是/。您有2个字符,但是您只通过字符类捕获1。添加量词{{1}使它匹配所有。

对于新问题,请使用

+

参见演示。

https://regex101.com/r/iS6jF6/25