来自2个空格分隔列

时间:2017-09-15 12:22:30

标签: regex

我需要一个正则表达式来解析一行 分隔数据的空格数为2或更多,列值可以是一个单词或由1个空格分隔的单词 e.g
输入:
01 Active/Active VXSM_T1E1 MAJOR NA NO REDUNDANCY
因此,这个的输出应该是:
01
Active/Active
VXSM_T1E1
MAJOR
NA
NO REDUNDANCY

输入:
01 Active/Active VXSM_T1E1 MAJOR NEXT NA NO REDUNDANCY ELEMENT
因此,这个的输出应该是:
01
Active/Active
VXSM_T1E1
MAJOR NEXT
NA
NO REDUNDANCY ELEMENT

我开始使用:(\ S + \ s \ s)|(\ S + \ s)+ 但无法解决我的所有问题

1 个答案:

答案 0 :(得分:1)

您的尝试(\S+\s\s)|(\S+\s)+与两种情况中的一种匹配,一个或多个字符后跟两个空格,或者一个或多个字符组,后跟一个空格。

如果您查看自己的要求,则需要将这两者合并为一个选项。您希望整个组后跟两个空格,并且您希望组包含单个空格。

(\S+\s)*\S+(\s\s|$)匹配零个或多个字符组,后跟一个空格,后跟一个或多个字符,后跟两个空格或结束行。

这包括捕获中的尾随空格。如果这是不需要的,最终的捕获组应该是一个先行。