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



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

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

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,}(?! *$)/gm

正则表达式演示

解释:

  • {2,} - 匹配 2 个或更多空格
  • }(?! *$) - 是一个负面的展望,以确保在输入结束之前只有 0 个或更多空格时
  • 不匹配
  • m标志确保每个换行符都与锚$匹配(在上面的展望中使用)

这有效:

b(s(?![nr])){2,}b

它本质上是说匹配:

  • 整个"词",因此b词边界
  • s {2,}有两个或更多空格
  • 不后跟返回字符,通过使用负回溯(?![nr])

最新更新