我正在尝试编写一个String验证来匹配除=。
之外的任何字符(常规,数字和特殊)这是我写的 -
String patternString = "[[^=][\\w\\s\\W]]*";
Pattern p = Pattern.compile(patternString);
Matcher m = p.matcher(str);
if(m.matches())
System.out.println("matches");
else
System.out.println("does not");
但是,它与输入字符串“2009-09 / 09 12:23:12.5 =”匹配模式。
如何从模式字符串中排除=(或任何其他字符)?
答案 0 :(得分:40)
如果唯一禁止的字符是等号,则[^=]*
之类的字符应该有用。
[^...]
是一个否定的字符类;它匹配单个字符,除了方括号中的列表之外的任何字符。 *
重复表达式零次或多次。
答案 1 :(得分:7)
首先,您不需要正则表达式。只需致电contains
:
if(str.contains("="))
System.out.println("does not");
else
System.out.println("matches");
您正在寻找的正确正则表达式只是
String patternString = "[^=]*";
答案 2 :(得分:4)
如果您只想检查“=”的出现,为什么不使用String indexOf()方法?
if str.indexOf('=') //...
答案 3 :(得分:1)
如果您的目标是在字符串中没有任何=字符,请尝试以下
String patternString = "[^=]*";