vscode - XML регулярные выражения - PullRequest
0 голосов
/ 26 апреля 2020

Я застрял ... в онлайн-инструментах регулярных выражений это работает, но не в vscode CMD + H

s*<ThingSaveData(?:.*\n){2}.*(MixRemove)(?:.*\n){1,56}.*<\/ThingSaveData>

Список Multi ThingSaveData с тем же PrefabName, я хочу заменить все ThingSaveData, если PrefabName == MixRemove, весь раздел ThingSaveData должен быть удален с

<ThingSaveData xsi:type="SlagSaveData">
  <ReferenceId>4142</ReferenceId>
  <PrefabName>MixRemove</PrefabName>
</ThingSaveData>
<ThingSaveData xsi:type="SlagSaveData">
  <ReferenceId>4143</ReferenceId>
  <PrefabName>MixOne</PrefabName>
</ThingSaveData>
<ThingSaveData xsi:type="SlagSaveData">
  <ReferenceId>4144</ReferenceId>
  <PrefabName>MixRemove</PrefabName>
</ThingSaveData>

до

<ThingSaveData xsi:type="SlagSaveData">
  <ReferenceId>4143</ReferenceId>
  <PrefabName>MixOne</PrefabName>
</ThingSaveData>

1 Ответ

0 голосов
/ 26 апреля 2020

Попробуйте:

^ *<ThingSaveData(?:.*\n){2}.*MixRemove(?:.*\n)\s*<\/ThingSaveData>

см. https://regex101.com/r/3ybjHT/4

Эта часть вашего регулярного выражения неверна: (?:.*\n){1,56} вам нужна только одна из этих групп, а не до 56.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...