Регулярное выражение для соответствия любому символу повторяется более 10 раз
Я ищу простое регулярное выражение, чтобы соответствовать тот же символ повторяется более 10 раз. Так, например, если у меня есть документ, заваленный горизонтальными линиями:
=================================================
он будет соответствовать линии =
символы, потому что он повторяется более 10 раз. Примечание что я хотел бы, чтобы это работало для любой символ.
9 ответов:
регулярное выражение вам нужно, это
на/(.){9,}/
.- Это называется обратной ссылкой. Он ссылается на то, что захвачено точкой
.
между скобками(.)
а то{9,}
запрашивает девять или более одинаковых символов. Таким образом, это соответствует десяти или более из любого одного символа.хотя приведенный выше тестовый скрипт находится в Perl, это очень стандартный синтаксис регулярных выражений и должен работать на любом языке. В некоторых вариантах вы можете нужно использовать больше обратных косых черт, например Emacs заставит вас писать
\(.\)\{9,\}
здесь.если вся строка должна состоять из 9 или более одинаковых символов, добавить анкоры по шаблону:
my $regex = qr/^(.){9,}$/;
в Python вы можете использовать
(.){9,}
- (.) делает группу из одного символа (любого символа)
- \1{9,} соответствует девяти или более персонажей из 1-й группы
пример:
txt = """1. aaaaaaaaaaaaaaa 2. bb 3. cccccccccccccccccccc 4. dd 5. eeeeeeeeeeee""" rx = re.compile(r'(.){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 '(.){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 '/(.){9,}/', ' ' | Set-Content -Path $newfile
в некоторых приложениях вам нужно удалить косые черты, чтобы заставить его работать.
/(.){9,}/
или такой:
(.){9,}
PHP
preg_replace
пример:$str = "motttherbb fffaaattther"; $str = preg_replace("/([a-z])\1/", "", $str); echo $str;
здесь
[a-z]
просмотров персонажа,()
затем позволяет использовать его с\1
backreference, который пытается соответствовать другому такому же символу (обратите внимание, что это уже нацелено на 2 последовательных символа), таким образом:мать отец
если ты:
$str = preg_replace("/([a-z])\1{2}/", "", $str);
это будет стирать 3 последовательных повторяющихся символа, выводя:
moherbb ее