Регулярное выражение, совпадающее с несколькими вхождениями в файле и в строке

Первый пост, так что здесь идет. Я пишу скрипт, который выполняет интеллектуальный поиск и замену файлового дерева. По сути, скрипт получает содержимое каждого файла в строку буфера и выполняет сопоставление с предопределенным шаблоном, в этом случае шаблон /^[^\r\n]*(vendor)[^\r\n]*$/im, Шаблон должен найти любые нечувствительные к регистру формы "vendor" и дать мне всю найденную строку. Мне нужно увидеть всю строку, чтобы определить, стоит ли заменить вхождение. Этот шаблон хорошо работает для любого числа отдельных строк в данном файле.

Однако, если в данной строке есть несколько вхождений, шаблон будет соответствовать только одному из этих вхождений и пропустить другие. Я пытаюсь определить, нужен ли мне второй шаблон для дополнительного поиска по сопоставленной строке, или я могу выполнить эту задачу с помощью одного шаблона, который выполняет все вышеперечисленное.

Просто пример того, что я надеюсь произвести. Пример одной строки, совпадение нескольких совпадений:

Энтузиазм революционизирует возможности поставщиков VENDOR через Интернет, которые устанавливают базовые интернет-магазины.

Я хотел бы вывести что-то похожее на это (опять же, выход не является проблемой здесь, это то, могу ли я сопоставить все это с одним шаблоном):

Несколько вхождений в строке: || Энтузиазм революционизирует возможности поставщиков VENDOR через Интернет, которые устанавливают базовые интернет-магазины. ||

Заменить? (у, п, д) || ... способный ВЕНДОР потенциальный... ||

Заменить? (у, п, д) || ... галстуки продавцы инста... ||

Пожалуйста, дайте мне знать, если я не уверен в моей цели. Спасибо за любую помощь и ответ на это!

1 ответ

Решение

Если вы используете

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

Я бы предложил добавить оператор g (global)

/^[^\r\n]*(vendor)[^\r\n]*$/img
Другие вопросы по тегам