我试图让下面的比赛,但不返回true,因为我所期望的:的Java String.matches正则表达式或管道
String attrs = "id|fullname|email|title";
String regex = "fullname|email";
return attrs.matches(regex);
相反,它返回false。
这是为什么?我期待| attrs中的管道将从字面上解释为ASCII字符,并且|正则表达式中的管道按照正则表达式(即OR)进行解释。
我问的原因是因为我正在编写一个应用程序,我让用户以attr1 | attr2 | attr3 | ...的格式设置属性,并且我想通过将它与它匹配来验证他/她的输入可能的属性值:attr1 | attr2 | attr3 | ... | attr [n]。
帮助表示赞赏,
KTM
得到它做
String regex = "id.*|fullname.*|email.*|title.*";
String attrs = "fullname|email";
return attrs.matches(regex);
谢谢!我其实不想匹配字面上的'|'字符。我只是用它作为分离属性的语法手段。 – ktm5124 2011-01-23 00:18:21
@ ktm5124 - 我明白了。看到我更新的答案。 – 2011-01-23 00:22:04