我收到的数据如下所示:
Applications 7 days 6 days我正在尝试创建与这一行相匹配的regex,而不是有另一列的行,如下所示:
Applications 7 days 6 days 5 days我试图使用的正则表达式是:
^(.*?)(\s){4,}(.*?)(\s){4,}[^(\s){2}]+其中,[^(\s){2}]+将意味着选择所有的东西,直到一个双空间。问题是
我是否可以使用任何正则表达式来匹配3列表,而不是4列、5列等?
发布于 2014-05-16 16:41:29
您应该注意字符类([]),因为其中的一些字符被按字面处理(就像它们被转义了一样)。
试试这个regex (这里的演示):
^((?:(?!\s\s).)+)(?:\s){4,}((?:(?!\s\s).)+)(?:\s){4,}((?:.(?!\s\s))+)$((?:(?!\s\s).)+)切换了((?:(?!\s\s).)+),它可以将所有内容匹配到两个空格的序列中。$,这样它就不会匹配超过两个列的行。?:,这样这些组就变成了非匹配组。不以空格结尾的列
此列不接受第二列以空格(这里的演示)结尾的行:
^((?:(?!\s\s).)+)(?:\s){4,}((?:(?!\s\s).)+)(?:\s){4,}((?:.(?!\s\s)(?!\s$))+)$注意,在最后一组中添加了第二个负面展望:(?!\s$)。
发布于 2014-05-16 16:51:53
试试这个:
^[^\s]*(\s{2,}[^\s].*){2,}假设在每个列值之前,至少有两个空格。
演示
https://stackoverflow.com/questions/23700264
复制相似问题