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

con*_*ker 22 java regex

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

这是我写的 -

    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");
Run Code Online (Sandbox Code Playgroud)

但是,它与输入字符串"2009-09/09 12:23:12.5 ="匹配模式.

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

tri*_*eee 42

如果唯一被禁止的字符是等号,那么[^=]*应该有效.

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

  • 如何使 `[^=]*` 也匹配 `\n` ? (2认同)

phi*_*hag 7

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

if(str.contains("="))
    System.out.println("does not");
else
    System.out.println("matches");
Run Code Online (Sandbox Code Playgroud)

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

String patternString = "[^=]*";
Run Code Online (Sandbox Code Playgroud)

  • 这可能对原始海报很有帮助。但是这个答案与问题的具体文本相去甚远,这导致成千上万的其他人来到这个页面。这种替代方案对他们的价值要小得多。 (2认同)

Che*_*min 6

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

String patternString = "[^=]*";
Run Code Online (Sandbox Code Playgroud)