正则表达式匹配每个文件和每行的多个匹配项 [英] Regex matching multiple occurrences per file and per line

查看:16
本文介绍了正则表达式匹配每个文件和每行的多个匹配项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

第一个帖子,就是这样。我正在编写一个在文件树上执行智能搜索和替换的脚本。实质上,该脚本将每个文件的内容放入一个缓冲区字符串中,并使用预定义的模式执行匹配,在本例中,模式为/^[^ ]*(vendor)[^ ]*$/im。该模式应该找到所有不区分大小写的供应商形式,并给出匹配的整行。我需要查看整个行,以便确定是否替换出现的项。对于给定文件中出现的任意数量的单独行,此模式性能良好。

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

只是我希望生产的产品的一个样品。单行、多次匹配的示例:

热心改革 支持Web的供应商的潜力 供应商安装了基本的电子零售商。

我想输出类似以下内容的内容(同样,这里的问题不是输出,而是我是否可以用一个模式将其全部匹配):

行中出现多个:|| 热情地进行革命 支持Web的供应商的潜力 供应商安装了基本的电子零售商。|

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

替换?(y,n,q)||...将供应商联系在一起。|

如果我的目标不清楚,请让我知道。感谢您的帮助和回复!

推荐答案

如果您正在使用

/^[^
]*(vendor)[^
]*$/im

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

/^[^
]*(vendor)[^
]*$/img

这篇关于正则表达式匹配每个文件和每行的多个匹配项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆