REGEX для повторной пунктуации X Количество раз - PullRequest
0 голосов
/ 04 декабря 2018

Есть ли способ сделать это:

[^A-Za-z0-9\s]{6}.*[^A-Za-z0-9\s]{6}.*[^A-Za-z0-9\s]{6}

Не повторяя совпадающую часть столько раз, сколько я бы хотел сопоставить?

Я пытался ([^A-Za-z0-9\s]{6}){3}но это не сработало.

По сути, я пытаюсь поймать, когда пользователи слишком часто повторяют пунктуацию:

О, боже мой !!!!!!!!!Это безумие!!!!!!!Что ты собираешься делать с этим ???! ??! ???!

Но это нормально:

О боже мой !!!!!!!!!Это безумие!Что вы собираетесь с этим делать?

Ответы [ 3 ]

0 голосов
/ 04 декабря 2018

Если вы хотите сопоставить любой символ из класса, а затем и более того же символа (например, кластеры с одинаковой пунктуацией), вы можете использовать группы захвата:

([^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
0 голосов
/ 04 декабря 2018

Это регулярное выражение будет делать то, что вы хотите:

([^A-Za-z0-9\s]{6,}([\w\s]+|$)){2,}

Он ищет группу из 6 или более символов символов ([^A-Za-z0-9\s]{6,}), за которыми следует один или несколько символов слова / пробела или конецлиния (([\w\s]+|$)).Для квантификатора {2,} требуется, чтобы группа встречалась как минимум дважды.

Демонстрация по регулярному выражению regex101

0 голосов
/ 04 декабря 2018

ДА, вы можете сделать это следующим образом

[^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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...