Как выбрать все пробелы с определенным интервалом - PullRequest
0 голосов
/ 30 сентября 2019

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

string = "this is a test for regex" 

string = "this(select)is a(select)test(select)for(select)regex" 

, пробел после is не должен выбираться, поскольку интервал равен 3, а длина is только 2

Я сделал это ^(?=.{3,})\s$ но не повезло. Спасибо

Ответы [ 3 ]

1 голос
/ 30 сентября 2019

В зависимости от вашего движка регулярных выражений вы можете использовать любой из следующих способов:

\K Метод сброса

Если ваш движок поддерживает \K.

Смотрите здесь используемое регулярное выражение

.{3,}?\K\s+

Этот метод соответствует любому символу 3 или более раз (но как можно меньше), затем сбрасывает совпадение шаблона , затем соответствует одномуили более пробельных символов.

Метод группы захвата

См. здесь регулярное выражение

(.{3,}?)\s+

Замените на $1

Этот метод захватывает любой символ 3 или более раз (но как можно меньше), затем сопоставляет один или несколько пробельных символов. Затем вы бы заменили совпадения на совпадения первой группы захвата.


?, следующий за квантификатором (в случаях выше {3,}), приводит к совпадению в lazy манера, означающая, что как только он удовлетворяет по крайней мере 3 совпадениям и находит символ пробела, он останавливается (это не позволяет ему сопоставить всю строку до последнего пробела).

Маркер \K сбрасываетсясоответствие модели. Это означает, что ничто, предшествующее этому току, не будет зафиксировано в общем совпадении (в результате сопоставляются только пробельные символы)

0 голосов
/ 30 сентября 2019

Это будет сделано:

.{3,}?(\s)
  • .{3,}? - лениво сопоставлять любые 3 символа
  • (\s) - захватить пробел, следующий за

Ваш желаемый пробел будет в $1.

https://regex101.com/r/7iWjQO/1

0 голосов
/ 30 сентября 2019
rstrip('    ')

или попробуйте

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