什么是“不是空白而不是连字符”的正则表达式

时间:2010-05-07 11:22:24

标签: regex

我尝试了这个,但它不起作用:

[^\s-]

任何想法?

5 个答案:

答案 0 :(得分:78)

[^\s-]

应该有效,

[^-\s]
  • []:char类
  • ^:在char类^内部是 当它出现在开头的否定者。
  • \s:空白的缩写
  • -:一个字面连字符。连字符是一个 char类中的meta char但不是 当它出现在开头或 最后。

答案 1 :(得分:51)

它可以更轻松地完成:

\S等于[^ \t\r\n\v\f]

答案 2 :(得分:7)

您使用的是哪种编程语言?可能你只需要像“[^ \\ s - ]”

那样逃避反斜杠

答案 3 :(得分:6)

在Java中:

    String regex = "[^-\\s]";

    System.out.println("-".matches(regex)); // prints "false"
    System.out.println(" ".matches(regex)); // prints "false"
    System.out.println("+".matches(regex)); // prints "true"

正则表达式[^-\s]按预期工作。 [^\s-]也有效。

另见

答案 4 :(得分:-5)

尝试[^- ]\s将匹配空格旁边的其他5个字符(如制表符,换行符,换页符,回车符)。