Как искать вхождения более одного пробела между словами в строке
Как искать вхождения более одного пробела между словами в строке
1. this is a line containing 2 spaces
2. this is a line containing 3 spaces
3. this is a line containing multiple spaces first second three four
все вышеизложенное является допустимыми совпадениями для этого регулярного выражения. Какое регулярное выражение я должен использовать?
4 ответов:
[ ]{2,}пробел (2 или более)
вы также можете проверить, что до и после этих пространствах последующие слова. (не другие пробелы, такие как вкладки или новые строки)
\w[ ]{2,}\wто же самое, но вы также можете выбрать (захват) только пробелы для таких задач, как замена
\w([ ]{2,})\wили увидеть, что до и после пробелов есть что-нибудь, а не только символы слов (кроме пробелов)
[^\s]([ ]{2,})[^\s]
простое решение:
/\s{2,}/Это соответствует всем вхождениям одного или нескольких символов пробела. Если вам нужно сопоставить всю строку, но только если она содержит два или более последовательных пробельных символа:
/^.*\s{2,}.*$/Если пробелы не должны быть последовательными:
/^(.*\s.*){2,}$/
искать
[ ]{2,}. Это позволит найти два или более смежных пространства в любом месте линии. Он также будет соответствовать ведущим и конечным пробелам, а также линиям, которые полностью состоят из пробелов. Если вы не хотите этого, проверьте ответ Александра.на самом деле, вы можете оставить скобки, они просто для ясности (в противном случае символ пробела, который повторяется, не так хорошо виден :)).
проблема с
\s{2,}это то, что он также будет соответствовать новым строкам в файлах Windows (где новые строки обозначаютсяCRLFили\r\nчто соответствует\s{2}.если вы также хотите найти несколько вкладок и пробелов, используйте
[ \t]{2,}.
вот мое решение
[^0-9A-Z,\n]это удалит все цифры, запятые и новые строки, но выберите среднее пространство, такое как набор данных
- 20171106,16632 ESCG0000018SB
- 20171107,280 ESCG0000018SB
- 20171106,70476 ESCG0000018SB
Comments