我需要一个regex表达式来解析一行。
分隔数据的空格数为2或更多,列值可以是一个或多个字,由一个空格隔开。
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)x(\S+\s)+,但不能解决我所有的问题
发布于 2017-09-15 12:43:06
您的尝试(\S+\s\s)|(\S+\s)+匹配这两种情况中的一种,即一个或多个字符后面跟着两个空格,或者一个或多个字符组后面跟着一个空格。
如果您查看您的需求,您需要将这两者作为一个单一的选择组合起来。您希望整个组后面有两个空格,并且您希望您的组包含单个空格。
(\S+\s)*\S+(\s\s|$)匹配0组或多组字符,后面是单个空格,后面是一个或多个字符,后面是两个空格或结束行。
这包括捕获中的尾随空格。如果这是不想要的,那么最后的捕获组应该是前瞻性的。
https://stackoverflow.com/questions/46239494
复制相似问题