Использовать Регулярное выражение Perl Строка поиска:
^[\t ]*<ArticleId IdType="pii">.*</ArticleId>[\t ]*(?:\r?\n|\r|$)
Эта строка регулярного выражения ищет
^
... от начала строки [\t ]*
... для 0 или более горизонтальных табуляции или пробелов (необязательные начальные табуляции / пробелы) <ArticleId IdType="pii">
... эта строка .*
... любой символ 0 или более раз, кроме новой строки символов </ArticleId>
... эта строка [\t ]*
... для 0 или более горизонтальных вкладокили пробелы (необязательные конечные табуляции / пробелы) (?:
... )
... с группой без маркировки с выражением ИЛИ внутри \r?\n|\r|$
... кареткавозврат (опционально) и перевод строки ИЛИ просто возврат каретки ИЛИ конец строки / файла.
Итак (?:\r?\n|\r|$)
соответствует
- возврат каретки + перевод строки, которыйстрока, заканчивающаяся в текстовых файлах DOS / Windows,
- или просто перевод строки, который является строкой, заканчивающейся в текстовых файлах UNIX,
- или просто возврат каретки, являющейся строкой, заканчивающейся в MACтекстовые файлы до MAC OS X.
$
не соответствует символам конца строки.Он просто добавляется в случае, если <ArticleId IdType="pii">.*</ArticleId>
также находится в конце файла без конца строки, то есть последняя строка в файле не имеет конца строки.
Также возможна строка поиска:
[\t ]*<ArticleId IdType="pii">.*</ArticleId>[\t ]*(?:\r?\n|\r)?
Теперь удаляемый элемент XML также может находиться внутри строки, содержащей другой тег, поскольку ^
для начала удаленной строки и совпадения с окончанием строки просто необязательно.Так что это не такое ограничение строки, как поисковое выражение выше.