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
失败了,我在正则表达式中遗漏了什么吗?
答案 0 :(得分:2)
\\b(\\w+)[&\\/ ]+\\w+
^^
该量词修复了它。参见演示。
https://regex101.com/r/iS6jF6/23
failed
案例的问题是/
。您有2
个字符,但是您只通过字符类捕获1
。添加量词{{1}使它匹配所有。
对于新问题,请使用
+
参见演示。