Регулярное выражение для повторения любого символа более 10 раз

Я ищу простое регулярное выражение, которое соответствует тому же символу, который повторяется более 10 или около того. Так, например, если у меня есть документ, замусоренный горизонтальными линиями:

================================================= 

Он будет соответствовать строке символов = потому что он повторяется более 10 раз. Заметьте, что я хотел бы, чтобы это работало для любого персонажа.

/(.)\1{9,}/ выражение, которое вам нужно, это /(.)\1{9,}/ .

Контрольная работа:

 #!perl use warnings; use strict; my $regex = qr/(.)\1{9,}/; print "NO" if "abcdefghijklmno" =~ $regex; print "YES" if "------------------------" =~ $regex; print "YES" if "========================" =~ $regex; 

Здесь \1 называется обратной репликацией. Он ссылается на то, что захвачено точкой . между скобками (.) а затем {9,} задает девять или более одинаковых символов. Таким образом, это соответствует десяти или более любому символу.

Хотя вышеупомянутый тестовый скрипт находится в Perl, это очень стандартный синтаксис регулярных выражений и должен работать на любом языке. В некоторых вариантах вам может потребоваться больше обратных косых черт, например, Emacs заставит вас написать \(.\)\1\{9,\} здесь.

Если целая строка должна состоять из 9 или более одинаковых символов, добавьте привязки вокруг шаблона:

 my $regex = qr/^(.)\1{9,}$/; 

В Python вы можете использовать (.)\1{9,}

  • (.) делает группу из одного символа (любого символа)
  • \ 1 {9,} соответствует девяти или более символам из 1-й группы

пример:

 txt = """1. aaaaaaaaaaaaaaa 2. bb 3. cccccccccccccccccccc 4. dd 5. eeeeeeeeeeee""" rx = re.compile(r'(.)\1{9,}') lines = txt.split('\n') for line in lines: rxx = rx.search(line) if rxx: print line 

Вывод:

 1. aaaaaaaaaaaaaaa 3. cccccccccccccccccccc 5. eeeeeeeeeeee 

. соответствует любому символу. Используется вместе с уже фигурными фигурными скобками:

 $: cat > test ======== ============================ oo ooooooooooooooooooooooo $: grep -E '(.)\1{10}' test ============================ ooooooooooooooooooooooo 

используйте оператор {10,}:

 $: cat > testre ============================ == ============== $: grep -E '={10,}' testre ============================ ============== 

Вы также можете использовать PowerShell для быстрой замены слов или повторений символов. PowerShell для Windows. Текущая версия 3.0.

 $oldfile = "$env:windir\WindowsUpdate.log" $newfile = "$env:temp\newfile.txt" $text = (Get-Content -Path $oldfile -ReadCount 0) -join "`n" $text -replace '/(.)\1{9,}/', ' ' | Set-Content -Path $newfile 

В некоторых приложениях вам нужно удалить косые черты, чтобы заставить его работать.

 /(.)\1{9,}/ 

или это:

 (.)\1{9,} 

preg_replace PHP:

 $str = "motttherbb fffaaattther"; $str = preg_replace("/([az])\\1/", "", $str); echo $str; 

Здесь [az] обращается к символу, () затем позволяет использовать его с \\1 backreference, который пытается сопоставить другой символ (обратите внимание, что это нацеливание уже на два последовательных символа), таким образом:

мама папа

Если вы это сделали:

 $str = preg_replace("/([az])\\1{2}/", "", $str); 

который будет стирать 3 последовательных повторяющихся символа, выводящий:

молиться ей

 ={10,} 

matches = который повторяется 10 или более раз.

Похоже, вам нужно регулярное выражение: 8 = * D

 grep -E "8=*D" sampletext 
  • Регулярное выражение позволяет вводить цифры и одну точку
  • RegEx, чтобы убедиться, что строка содержит по крайней мере один символ нижнего регистра, символ верхнего регистра, цифру и символ
  • Регулярное выражение для запрещения более 1 штриха последовательно
  • Разбиение строки на первом пространстве
  • Регулярные выражения: есть ли оператор И?
  • Ссылка. Что означает это регулярное выражение?
  • Python Regex - Как получить позиции и значения совпадений
  • Как использовать регулярные выражения, как эффективно сопоставлять строки между двойными кавычками со встроенными двойными кавычками?
  • Извлеките информацию внутри всех скобок в R
  • Исключить символы из classа символов
  • Regex - не содержит определенных символов
  • Давайте будем гением компьютера.