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

Я использовал Шлифовальный станок . Это - открытый исходный код, довольно простой в использовании, и очень настраивающийся. Это - базирующийся Java и использует Jython для сценариев. Мы выполнили его против веб-приложения.NET, не думайте, что это - Java только инструмент (по их характеру, любой веб-инструмент напряжения не должен быть связан с платформой, которую это использует).

Мы сделали некоторый аккуратный материал с ним..., мы были веб-телекоммуникационным приложением, таким образом, одно прохладное использование, которое я настроил, должно было имитировать набирание номера через наше веб-приложение, затем использовало инструмент автоматического ответа, мы имели (который был в основном учебным приложением от Microsoft для подключения с их RTC сервера LCS..., который является тем, с чем соединяется Коммуникатор Microsoft Office в локальной сети... тогда измененной, чтобы просто взять вызовы автоматически). Это тогда позволило нам использовать это вместо дорогого инструмента телефонии под названием Молоток (или что-то как этот).

Так или иначе, мы также использовали инструмент, чтобы видеть, как наше приложение поддержало при высокой загрузке, и это было очень эффективно при нахождении узких мест. Инструмент создал в создании отчетов для показа, сколько времени запросы берут, но мы никогда не использовали его. Журналы могут также сохранить все ответы и этажерку или пользовательский вход.

я настоятельно рекомендую этот инструмент, очень полезный за цену..., но ожидаю делать некоторую пользовательскую установку с ним (это имеет созданный в прокси для записи сценария, но этому, возможно, понадобится настройка для получения чего-то как сессии... Я знаю, что должен был настроить его для использования уникальной сессии на поток).

89
задан Sam Rad 22 July 2013 в 21:39
поделиться

5 ответов

Вам нужно регулярное выражение / (.) \ 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,}$/;
139
ответ дан 24 November 2019 в 07:18
поделиться

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

$: cat > testre
============================
==
==============

$: grep -E '={10,}' testre
============================
==============
1
ответ дан 24 November 2019 в 07:18
поделиться
={10,}

соответствует = , которое повторяется 10 или более раз.

0
ответ дан 24 November 2019 в 07:18
поделиться

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

  • (.) Делает группу из единицы char (любой символ)
  • \ 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
23
ответ дан 24 November 2019 в 07:18
поделиться

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

$: cat > test
========
============================
oo
ooooooooooooooooooooooo


$: grep -E '(.)\1{10}' test
============================
ooooooooooooooooooooooo
3
ответ дан 24 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: