Регулярное выражение для замены числа в порядке приращения в TextPad - PullRequest
0 голосов
/ 21 декабря 2018

Я хочу заменить номер приращения с помощью регулярного выражения в TextPad.У меня есть код ниже, и я хочу, чтобы число приращения между тегами <EndToEndId> и </EndToEndId> и число оставалось 8 цифрами.

        <PmtId>
           <EndToEndId>80000001</EndToEndId>
        </PmtId>
        <PmtTpInf>
              <Prtry>PM</Prtry>
        </PmtTpInf>
       <PmtId>
       <PmtId>
           <EndToEndId>80000002</EndToEndId>
        </PmtId>
        <PmtTpInf>
              <Prtry>PM</Prtry>
        </PmtTpInf>
       <PmtId>
       ......
       <PmtId>
           <EndToEndId>800000010</EndToEndId>
        </PmtId>
        <PmtTpInf>
              <Prtry>PM</Prtry>
        </PmtTpInf>
       <PmtId>

Я пытался найти решение, но после 80000009 оно дает 800000010, что является 9-значным числом.

Ниже приведено регулярное выражение в опции Найти и заменить в TextPad.

Найти что: (<EndToEndId>).*?(</EndToEndId>) Заменить на: (<EndToEndId>)\i(</EndToEndId>)

Я искал похожее решение для Stackoverflow, используя Notepadd ++ из Notepad ++, постепенно заменяющий , но он не дает номер приращения, когда есть другие теги, такие как <PmtId>, <PmtTpInf>

Не могли бы вы помочь мне решить эту проблему?вопрос, как я много пробовал и теперь спрашиваю о Stackoverflow.Спасибо.

1 Ответ

0 голосов
/ 02 января 2019

Выполните два прохода.

Первый проход, который вы делаете в данный момент, с результатами, такими как:

80000001
80000009
800000010
800000099
8000000100
8000000999

, затем второй проход для корректировки длины:

Search:  80+(\d{6})\b
Replace: 8$1

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

8000001
8000009
8000010
8000099
8000100
8000999
...