Регулярное выражение, соответствующее нескольким вхождениям в файл и в строку
-
04-07-2019 - |
Вопрос
Первый пост, так вот.Я пишу сценарий, который выполняет интеллектуальный поиск и замену в дереве файлов.По сути, сценарий помещает содержимое каждого файла в строку буфера и выполняет сопоставление с заранее определенным шаблоном. В данном случае шаблон /^[^\r\n]*(vendor)[^\r\n]*$/im
.Шаблон должен найти все формы слова «поставщик» без учета регистра и предоставить мне всю найденную строку.Мне нужно увидеть всю строку, чтобы определить, следует ли заменять вхождение.Этот шаблон хорошо работает для любого количества вхождений отдельных строк в данном файле.
Однако если в данной строке имеется несколько вхождений, шаблон будет соответствовать только одному из этих вхождений и пропускать остальные.Я пытаюсь определить, нужен ли мне второй шаблон для дополнительного поиска в совпавшей строке, или я могу достичь этой цели с помощью одного шаблона, который выполняет все вышеперечисленное.
Просто образец того, что я надеюсь создать.Пример однострочного совпадения с несколькими совпадениями:
С энтузиазмом революционизируют потенциальные поставщики с поддержкой веб-поставщиков.
Я хотел бы вывести что-то похожее на это (опять же, проблема здесь не в выводе, а в том, смогу ли я сопоставить все это с одним шаблоном):
Несколько вхождений в строке:|| С энтузиазмом революционизируют потенциальные поставщики с поддержкой веб-поставщиков.||
Заменять?(y, n, q) || ... Потоп с подъемом Потеном ...||
Заменять?(y, n, q) || ... связи поставщиков Insta ...||
Пожалуйста, дайте мне знать, если мне неясна моя цель.Спасибо за любую помощь и ответ на это!
Решение
Если вы используете
/^[^\r\n]*(vendor)[^\r\n]*$/im
Я бы предложил добавить оператор g (глобальный)
/^[^\r\n]*(vendor)[^\r\n]*$/img