正则表达式匹配每个文件和每行的多次出现

时间:2008-10-24 17:00:07

标签: regex preg-replace

第一篇文章,所以这里。我正在编写一个脚本,在文件树上进行智能搜索和替换。本质上,脚本将每个文件的内容放入一个缓冲区字符串中,并与预定义的模式进行匹配,在这种情况下,模式为/^[^\r\n]*(vendor)[^\r\n]*$/im。该模式应该找到任何不区分大小写的“供应商”形式,并给我整个匹配的行。我需要查看整行,以确定是否替换事件。此模式适用于给定文件中任意数量的单独行出现。

但是,如果给定行上有多个匹配项,则该模式将仅匹配其中一个匹配项,并跳过其他匹配项。我正在尝试确定是否需要第二种模式在匹配的行上进行额外搜索,或者我是否可以使用完成上述所有操作的单一模式来实现此目的。

只是我希望制作的样本。单行,多次匹配的示例:

  

热情地彻底改革   支持网络的VENDOR潜力   供应商安装了基础电子零售商。

我想输出与此相似的东西(同样,输出不是问题,不管是否可以将它与一种模式匹配):

  

行中多次出现:||   热情地彻底改革   支持网络的VENDOR潜力   供应商安装了基础电子零售商。 ||

     

替换? (y,n,q)|| ......有能力的供应商...... ||

     

替换? (y,n,q)|| ......捆绑供应商insta ... ||

如果我不清楚我的目标,请告诉我。感谢您的帮助和回应!

1 个答案:

答案 0 :(得分:1)

如果您正在使用

/^[^\r\n]*(vendor)[^\r\n]*$/im

我建议添加g(全局)运算符

/^[^\r\n]*(vendor)[^\r\n]*$/img