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

问题描述 投票:2回答:3

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

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

word 1    word 2
word1    word2

正则表达式是

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

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

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

regex spaces
3个回答
1
投票

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

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

enter image description here

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


1
投票

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

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

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

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

Regex demo


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.