如何选择一定间隔的所有空白

时间:2019-09-30 19:07:34

标签: regex

在给定数量的间隔后,我将使用正则表达式查找所有空格。 例如,如果以下字符串的间隔为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 个答案:

答案 0 :(得分:1)

根据您的正则表达式引擎,可以使用以下任意一种方式:

\K重置方法

如果您的引擎支持\K

See regex in use here

.{3,}?\K\s+

此方法会匹配任意字符3次或更多次(但要尽可能少),然后重置模式的匹配项,然后匹配一个或多个空格字符。

捕获组方法

See regex in use here

(.{3,}?)\s+

替换为$1

此方法捕获 3个或更多字符(但尽可能少),然后匹配一个或多个空白字符。然后,您将匹配项替换为第一个捕获组的匹配项。


在量词之后的?(在{3,}以上的情况下)使它以 lazy 的方式进行匹配,这意味着一旦它满足至少3个匹配项,并且找到一个空白字符,它将停止(这将阻止它与整行匹配到最后一个空格)。

\K令牌重置模式的匹配。这意味着在整个匹配中不会捕获此标记之前的任何内容(仅导致匹配空白字符)

答案 1 :(得分:0)

这可以做到:

.{3,}?(\s)
  • .{3,}?-任意匹配3个字符
  • (\s)-捕获后面的空白

您想要的空格将位于$1中。

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

答案 2 :(得分:-2)

rstrip('    ')

或尝试

rstrip('\n')