正则表达式匹配由非分隔的字符数

我想计算字符数,但它们可能会被不匹配的字符分隔。

这是一个例子。 我想匹配一个包含10个或更多单词字符的文本。 它可能包含空格,但我不想计算空格。

不应该匹配:“foo bar baz”(应计数9)
不应该匹配:“a a”(应计为2)
应该匹配:“foo baz吧”(应该算10,匹配整个字符串)

这就是我想出来的,但它包括了整个事情:

((?<=s)*w(?=s)*){10}

编辑我不想包含计数空间。 对不起,我编辑了几次,我没有正确描述它。

对此有何想法?


嘿,我认为这将是一个简单而有效的工作:

( *?[0-9a-zA-Z] *?){10,}

打破正则表达式:

  • ( *? --------It can start with space(s)
  • [0-9a-zA-Z] -Followed with the alphanumeric values
  • *?) ---------It can end with space(s)
  • {10,} -------Matches this pattern 10 or more times
  • 注意:当我查看正则表达式的计数时,它适用于组,即括号“ () ”中的内容,在这种情况下,多个空格后接空格的字母数字值后跟一个,仍然计为一次匹配。 希望能帮助到你。 :)


    使用每个单个字符占用空格的组,并计算组:

    ^(s*w){10,}s*$
    

    使用JS:删除空格,然后执行w检查

    'foo baz barz'.replace(/ /g,'').match(/w{10,}/) != null //true
    'foo bar baz'.replace(/ /g,'').match(/w{10,}/) != null //false
    

    在文本中匹配电话号码:

    var test = 'something foo baz barz 07999-777-111 and 01234 567890 01234567890 some more'.match(/(((?0d{4})?[ -]?d{3}[ -]?d{3})|((?0d{3})?[ -]?d{3}[ -]?d{4})|((?0d{2})?[ -]?d{4}[ -]?d{4}))([ -]?#(d{4}|d{3}))?/g);
    //result: ["07999-777-111", "01234 567890", "01234567890"]
    
    链接地址: http://www.djcxy.com/p/13409.html

    上一篇: Regex match count of characters that are separated by non

    下一篇: Python, regex and html: match final tag on line