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