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

javascript不支持可以匹配0个字符的正则表达式[重复]

  •  -1
  • ptrcao  · 技术社区  · 6 年前

    必须通过regex验证行,

    1. 行可以包含任何字符、空格、数字和浮点数。

    2. 行不应为空

    我试过这个:

    [A-Za-z0-9~`!#$%^&*()_+-]+ //thinking of all the characters
    

    任何替代方案都会有帮助

    0 回复  |  直到 5 年前
        1
  •  20
  •   Timo Huovinen    9 年前

    尝试此操作以匹配一行,该行包含的不仅仅是空白

    /.*\S.*/
    

    这意味着

    / =定界符
    .* =除换行符以外的零个或更多项
    \S =除空白以外的任何内容(换行符、制表符、空格)

    所以你得到
    匹配除换行符以外的任何内容+除换行符以外的任何内容

    如果只有空格的行算不上空格,则将规则替换为 /.+/ ,它将匹配任何内容中的一个或多个。

        2
  •  7
  •   Zulu    9 年前

    尝试: [^()]

    在python中 re.match() :

      >>> re.match( r"[^()]", '' )
      >>> re.match( r"[^()]", ' ' )
      <_sre.SRE_Match object at 0x100486168>
    
        3
  •  5
  •   Robert xMRi    6 年前

    尝试:

    .+
    

    这个。匹配任何字符,加号至少需要一个。

        4
  •  2
  •   hkothari    12 年前

    你可以检查一下线路是否匹配 ^$ 如果是,那么它是空白的,你可以用它作为一个失败,否则它将通过。

        5
  •  1
  •   John    8 年前

    试试这个:

    ^.+$
    

    我在python beautifulsoup中使用了这个方法来查找没有空属性的标记。效果很好。示例如下:

    # get first 'a' tag in the html content where 'href' attribute is not empty
    parsed_content.find("a", {"href":re.compile("^.+$")})
    
        6
  •  0
  •   HannaY    9 年前

    此项将匹配所有内容,但不匹配空字符串:

    ^(\s|\S)*(\S)+(\s|\S)*$
    

    空字符串是那些只包含空字符的字符串(制表符、空格等)。

        7
  •  0
  •   roelvdboom    7 年前

    这一行将匹配至少1个字符的每一行:

    (.*?(\n))
    
        8
  •  0
  •   xrayder    5 年前
    ^\S+[^ ]$
    

    ^ -行首

    \S -任何非空白字符

    + -一次或多次发生

    [^ ] -字符不在集合中(在这种情况下只有空格),在^和]之间有空格,这将匹配dsadasd ^adsadas

    $ -行尾

    Something to help you

        9
  •  0
  •   xskxzr    5 年前

    尝试

    ^[A-Za-z0-9,-_.\s]+$ 
    

    对于字母、数字和 ,-_. 但不接受空字符串。

    + ->量词,在1和unlimited之间匹配。

    * ->量词,在0和无限制之间匹配。