Я пытаюсь найти и заменить в powershell несколько xml-файлов рекурсивно. Я бы хотел, чтобы сценарий не заменил некоторые атрибуты совпадающего текста.Условное регулярное выражение в поиске и замене powershell
Например, если взять пример ниже XML
<title>this is a web-site</title>
<subtitle>web-site experience</subtitle>
<path>c:/web-site/web-site.xml</path>
</doc>
должен быть изменен, как ниже по сценарию
<title>this is a new-site</title>
<subtitle>new-site experience</subtitle>
<path>c:/web-site/web-site.xml</path>
</doc>
если вы видите выше я хочу, чтобы игнорировать строку/web- сайт/и/веб-сайт.
Я пытаюсь использовать оператор OR и игнорировать и заменять приведенным ниже кодом, но он, похоже, не помогает.
$content -replace '(^|[^/])web-site([^/]|$)|(^|[^/])web-site([^.]|$)', '$1new-Site$2' |
Out-File $file.FullName -Encoding utf8
Можете ли вы дайте мне знать, как использовать условные OR для нескольких условий
Возможно, вы должны выбрать узел xml, используя e. г. xpath, а затем изменить содержимое? –
Я не знаю, правильно ли я вас понимаю. Поскольку это документ xml - вы хотите просто игнорировать узлы, отличные от названия? –
Это всего лишь незначительная вариация вашего предыдущего вопроса. –