2013-05-10 3 views
1

данных:Regex выберите строки, которые содержат больше п вхождение символьной

hello 1 2 3 4 5 6 7 
hello 1 2 3 4 5 6 7 8 
hello 1 2 3 4 5 
hello 1 2 3 4 5 

Я знаю, что [ ]{n,} работает только для предшествующих только символы.

+0

что вы спрашиваете именно? – melwil

+0

@melwil Я хочу выбрать строки, содержащие семь или более пробелов. – meiryo

+1

Регулярные выражения соответствуют шаблонам. Там может быть способ сделать это, но проще написать простой скрипт для подсчета символов (и он будет работать быстрее). –

ответ

1

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

(\s\w*){n,} 

Это соответствует пробелу, folowed ноль или более «слово» символов, для п или более раз.

2

Вы могли бы использовать что-то вроде:

(?: [^ ]*){n} 

матч Будет ли space следуют ноль или более символов non-spaceп раз. Вам действительно не нужно проверять на больше чем n, потому что если он содержит n + 1 пробелов, то он должен содержать n.

Если вы хотите, чтобы сосчитать все пробельные символы, которые Вы должны были бы:

(?:\s\S*){n} 
Смежные вопросы