如何在一行中的单词之间搜索多个空格的出现次数
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
以上所有都是此正则表达式的有效匹配项。我应该使用什么样的正则表达式?
答案 0 :(得分:141)
[ ]{2,}
SPACE(2或更多)
您还可以检查这些空格之前和之后的字词。 (不是像制表符或新行那样的其他空格)
\w[ ]{2,}\w
同样,但你也可以选择(捕获)任务的空间,如替换
\w([ ]{2,})\w
或者看到空格之前和之后有什么东西,不仅仅是单词字符(空格除外)
[^\s]([ ]{2,})[^\s]
答案 1 :(得分:9)
简单的解决方案:
/\s{2,}/
匹配所有出现的一个或多个空格字符。 如果需要匹配整行,但仅当它包含两个或多个连续的空格字符时才会匹配:
/^.*\s{2,}.*$/
如果空格不需要连续:
/^(.*\s.*){2,}$/
答案 2 :(得分:4)
搜索[ ]{2,}
。这将在线内的任何位置找到两个或更多相邻空格。它还将匹配前导和尾随空格以及完全由空格组成的行。如果您不想这样,请查看亚历山大的答案。
实际上,你可以省略括号,它们只是为了清晰起见(否则重复的空格字符不是那么明显:))。
\s{2,}
的问题在于它还会匹配Windows文件中的换行符(其中换行符由CRLF
或\r\n
表示,其匹配为\s{2}
。
如果您还想查找多个标签和空格,请使用[ \t]{2,}
。
答案 3 :(得分:2)
这是我的解决方案
[^0-9A-Z,\n]
这将删除所有数字,逗号和新行,但选择中间空格,例如
的数据集答案 4 :(得分:0)
此正则表达式选择所有空格,您可以使用此空格并将其替换为单个空格
\s+
python中的示例
result = re.sub('\s+',' ', data))