RegEx表示字符串中的N个空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RegEx表示字符串中的N个空格相关的知识,希望对你有一定的参考价值。

我期待创建组,由4个空格分隔问题是,如果组包含除4空格分隔符之外的任何空格,则与我到目前为止尝试的正则表达式不匹配

这就是我尝试过的。假设我有这两行,单词之间有4个空格

word 1    word 2
word1    word2

正则表达式是

^([^ {4}]*) {4}([^ {4}]*)$

这只匹配第二行。除4空格分隔符以外的任何空间的存在将与该行不匹配。

我希望在这两行中匹配并确定正确的组。

答案

经过一些实验并基于这里的好建议,我带来了This RegEx

^(.*?)    (.*?)    (.*?)$

enter image description here

从表面上看,它可以满足我的需求。最后一行最后有4个空格块,但这不应该发生。我没有看到任何陷阱?

另一答案

您可以指定要匹配的字符,而不是使用非贪婪的点星.*?方法。

如果您的数据仅包含单词,则可以匹配1个单词字符w+,然后是重复模式(w+(?: w+)*),以匹配空格和1个单词字符,然后匹配4个空格。

请注意,如果要匹配单词字符的更多内容,可以使用character class并添加允许匹配的字符。

^(w+(?: w+)*) {4}(w+(?: w+)*) {4}(w+(?: w+)*)$

Regex demo

另一答案

This RegEx可能会帮助您将输入字符串分为五组,其中第二组和第四组是四个空格:

([a-zA-Z0-9_ ]*)(s{4})([a-zA-Z0-9_ ]*)(s{4})([a-zA-Z0-9_ ]*)    

enter image description here

如果列中可能没有空格,可以使用this RegEx简化它:

(w+)(s{4})(w+)(s{4})(w+)

enter image description here

以上是关于RegEx表示字符串中的N个空格的主要内容,如果未能解决你的问题,请参考以下文章

C语言里如何判断空格

在 python 中使用 Regex 将 $$ 或更多替换为单个空格

java问题:String字符串替换部分空格,保留特定空格,如何做?

REGEX 删除空格或破折号,如果它们在数字之间

正则表达式

VB 中有啥好的办法,用代码去除字符中的:“Tab键”,“回车键”,“空格键”符号。