我期待创建组,由4个空格分隔问题是,如果组包含除4空格分隔符之外的任何空格,则与我到目前为止尝试的正则表达式不匹配
这就是我尝试过的。假设我有这两行,单词之间有4个空格
word 1 word 2
word1 word2
正则表达式是
^([^ {4}]*) {4}([^ {4}]*)$
这只匹配第二行。除4空格分隔符以外的任何空间的存在将与该行不匹配。
我希望在这两行中匹配并确定正确的组。
您可以指定要匹配的字符,而不是使用非贪婪的点星.*?
方法。
如果您的数据仅包含单词,则可以匹配1个单词字符\w+
,然后是重复模式(\w+(?: \w+)*)
,以匹配空格和1个单词字符,然后匹配4个空格。
请注意,如果要匹配单词字符的更多内容,可以使用character class并添加允许匹配的字符。
^(\w+(?: \w+)*) {4}(\w+(?: \w+)*) {4}(\w+(?: \w+)*)$
This RegEx可能会帮助您将输入字符串分为五组,其中第二组和第四组是四个空格:
([a-zA-Z0-9_ ]*)(\s{4})([a-zA-Z0-9_ ]*)(\s{4})([a-zA-Z0-9_ ]*)
如果列中可能没有空格,可以使用this RegEx简化它:
(\w+)(\s{4})(\w+)(\s{4})(\w+)