REGEX重复标点X次

时间:2018-12-03 21:40:28

标签: regex

有什么办法做到这一点:

QuestionsModule

是否没有重复匹配部分的次数?

我尝试了[^A-Za-z0-9\s]{6}.*[^A-Za-z0-9\s]{6}.*[^A-Za-z0-9\s]{6} ,但这没用。

基本上,我正在尝试捕获用户多次重复标点的文本:

  

哦,天哪!!!!!!疯了吧!!!!!!!你打算去哪   做到这一点???!??!??????

但这没关系:

  

哦,天哪!!!!!!疯了吧!你打算去哪   这样做吗?

3 个答案:

答案 0 :(得分:0)

是的,您可以这样

[^A-Za-z0-9\s]{6}(?:.*?[^A-Za-z0-9\s]{6}){number of times}

可读

 [^A-Za-z0-9\s]{6} 
 (?:
      .*? 
      [^A-Za-z0-9\s]{6} 
 ){number of times}

您也可以在number of times上设置范围,
number of times可能是1,10

答案 1 :(得分:0)

如果要匹配类中的任何字符,然后匹配更多相同字符(例如,具有相同标点符号的聚类),则可以使用捕获组:

([^A-Za-z0-9\s])\1{2,}

这匹配???.......!!!!!!!,但不匹配!??!!!?...!..。取决于正则表达式的方言,您可能需要使用$1而不是\1

说明:

 [^A-Za-z0-9\s]            # your character class
(              )           # make this part a capture group
                \1         # match whatever matched the first capture group
                  {2,}     # 2 or more times

答案 2 :(得分:0)

此正则表达式将执行您想要的操作:

implementation 'com.google.firebase:firebase-database:16.0.1'

它将查找一组6个或更多符号字符(([^A-Za-z0-9\s]{6,}([\w\s]+|$)){2,} ),然后是一个或多个单词/空格字符或行尾([^A-Za-z0-9\s]{6,})。 ([\w\s]+|$)量词然后要求该组至少出现两次。

Demo on regex101