代码之家  ›  专栏  ›  技术社区  ›  PacificNW_Lover

openapi-不允许使用空格或连字符的regex

  •  0
  • PacificNW_Lover  · 技术社区  · 3 年前

    我试过了,但不起作用:

    [^\s-]
    

    有什么想法吗?

    0 回复  |  直到 14 年前
        1
  •  138
  •   codaddict    14 年前
    [^\s-]
    

    应该起作用,也会起作用

    [^-\s]
    
    • [] :char类
    • ^ :在char类内部 ^ 是吗 negator,当它出现在开头时。
    • \s :空白的缩写
    • - :字面上的连字符。连字符是 char类中的meta char,但不是 当它出现在开头或 最后。
        2
  •  82
  •   Engvard    12 年前

    这可以更容易地完成:

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

        3
  •  9
  •   Cagdas    14 年前

    您使用的是哪种编程语言?可能您只需要转义反斜杠,如“[^\\s-]”

        4
  •  8
  •   Community CDub    7 年前

    在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-] 同样有效。

    另请参阅

        5
  •  0
  •   Torstein    2 年前

    请注意,regex不是一种标准,每种语言都根据库设计者的感受实现自己的语言。以bash使用的regex标准为例,在这里进行了说明: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03_05 . 如果您遇到正则表达式不起作用的问题,最好简化它,例如使用“[^-]”,如果它涵盖了您的案例中所有形式的空白。

        6
  •  -6
  •   RokL    13 年前

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