Regex查找以特定字符串开头的行中的所有空格

Regex查找以特定字符串开头的行中的所有空格,regex,pcre,Regex,Pcre,我正在搜索一个正则表达式,以查找以特定字符串开头的行中的所有空格(在SVN转储文件中)。尽管有“全局”修饰符,我的正则表达式只返回第一次出现的空格字符 我正在处理的文件的一部分: ... pla bla bli Node-path: branches/BU ILD/ml_cf/syst em/Translation/TranslationManager.class.php Node-kind: file Node-action: change Text-delta: true ....

我正在搜索一个正则表达式,以查找以特定字符串开头的行中的所有空格(在SVN转储文件中)。尽管有“全局”修饰符,我的正则表达式只返回第一次出现的空格字符

我正在处理的文件的一部分:

...
pla bla bli

Node-path: branches/BU ILD/ml_cf/syst em/Translation/TranslationManager.class.php  
Node-kind: file
Node-action: change
Text-delta: true
....
正则表达式:

/Node-path: \S*(\ )/g

只查找第一个空格(U和I之间),而不查找行上的其他空格。

使用PCRE正则表达式要查找以特定文本开头的行上的所有空格,请使用此正则表达式:

/(?:^Node-path: |\G)\S+\K\h+/gm

  • 使用
    (?:Node path:|\G)
    我们将从
    节点路径开始匹配行:
    或定位在上一个匹配的末尾
  • \G
    在上一个匹配的末尾或第一个匹配的字符串的开头断言位置
  • \K
    重置报告匹配的起点
  • \h+
    匹配一个或多个水平空白(空格或制表符)

我正在搜索以“Node path:”开头的行中的所有空格:您正在搜索该行中
节点路径:\S*(\)
的所有事件。只有一个。也许这会帮助我们理解您搜索所有空间的目的。请解释您需要做什么。我可以事先告诉您,在给定行上查找所有空格将返回一个空格列表。如果你想知道它们有多少,那么使用
tr//
anubhava给出了很好的答案。现在我需要使用sed将正则表达式返回的所有空格实例替换为下划线。看来有一些绝妙的魔法要做…谢谢!它做的工作!这就是我所做的,但我的声誉太低,我的选票无法改变公开显示的分数。