正则表达式用于查找超过1个空格的字符串但不以换行符结尾

时间:2014-12-12 16:52:55

标签: regex

正则表达大师,请在这里帮助我:

我需要一个正则表达式,它找到多个不以换行符结尾的空格。例如,请考虑以下文本:

Column 1       Column 2       Column 3        Column 4
Column 1       Column 2       Column 3        Column 4

正则表达式应匹配列X之间的空格,其中X = 1,2或3,但不应与第4列之后的空格匹配。正则表达式也应与单词“列”及其各自的数字之间的单个空格不匹配。

我已经尝试了\s+^(\n),但它无效

2 个答案:

答案 0 :(得分:4)

您可以使用此正则表达式:

/ {2,}(?! *$)/gm

RegEx Demo

<强>解释

  • {2,} - 匹配2个或更多空格
  • }(?! *$) - 在输入结束前只有0或更多空格时确保不匹配是否为负面预测
  • m标记可确保每个换行符都与锚$匹配(在上一个预告中使用)

答案 1 :(得分:0)

这有效:

\b(\s(?![\n\r])){2,}\b

它基本上表示匹配:

  • 整个&#34;单词&#34;,因此\b word boundary
  • 有两个或多个空格\s {2,}
  • 未使用返回字符,使用否定的lookbehind (?![\n\r])