繁体   English   中英

使用正则表达式匹配除=以外的任何字符

[英]Using regex to match any character except =

我正在尝试编写一个字符串验证来匹配除=以外的任何字符(常规,数字和特殊)。

这是我写的 -

    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 =”匹配模式。

如何从模式字符串中排除=(或任何其他字符)?

如果唯一禁止的字符是等号,那么[^=]*类的东西应该有用。

[^...]是一个否定的字符类; 它匹配单个字符,除了方括号中的列表之外的任何字符。 *重复表达式零次或多次。

首先,您不需要正则表达式。 只需致电contains

if(str.contains("="))
    System.out.println("does not");
else
    System.out.println("matches");

你正在寻找正确的正则表达式

String patternString = "[^=]*";

如果您只想检查是否出现“=”,为什么不使用String indexOf()方法?

if str.indexOf('=')  //...

如果您的目标是在字符串中没有任何=字符,请尝试以下操作

String patternString = "[^=]*";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM