2013-02-11 2 views
0

У меня есть большой XML-файл, и я должен изменить тег.Notepad ++ Замена регулярных выражений

Оригинал:

<MyTag>13/19/59/70/68/32'</MyTag>' 

То, что я хочу с регулярным выражением:

<MyTag>13,19,59,70,68,32</MyTag> 

Это может быть довольно легко, если бы я каждый раз одинаковое количество числа, но я мог бы иметь 8 номер или 5 или 6 или менее.

Как это сделать за один раз?

+0

Пожалуйста, проверьте, отображается ли текст правильно. Я старался изо всех сил угадать, что вы хотите, и отредактировать свой пост, но я не уверен, что это ваш оригинальный текст. – nhahtdh

+1

блокнот ++ regex - это не так мощно. Пожалуйста, проверьте эту ссылку для получения помощи http://markantoniou.blogspot.ca/2008/06/notepad-how-to-use-regular-expressions.html – Saju

ответ

1

Как уже указывалось в комментариях, регулярные выражения Notepad ++ не кажутся достаточно мощными, чтобы заменить их. В общем, я не думаю, что простая замена регулярного выражения не является достаточно сильной для этой замены, вы можете в лучшем случае получить 13/19/59/70/68/32 в группе захвата и выполнить замену / на , на эту строку другими способами. Вот почему, возможно, я бы подумал о том, чтобы использовать другой инструмент, которым вы владеете (perl, java, что угодно).

Используя Notepad ++, я бы для нормальной замены первого, чтобы заменить все вхождения '</MyTag>' в </MyTag>, а затем регулярное выражение заменить с этим регулярным выражением: (\d+)/. Замена должна быть \1,. Нажатие на Заменить все должно заменить все вхождения.

Если вы хотите избежать замены цифр, разделенных / в других тегах, возможно, вы можете использовать это регулярное выражение <MyTag>(.*)(\d+)/(.*)</MyTag> и заменить его на <MyTag>\1\2,\3</MyTag>. Эта замена должна выполняться N раз, поэтому вам может быть интересно записать макрос или аналогичный, если вы хотите его использовать.

0

ВОЗМОЖНО ДЕЛАТЬ В ОДНОМ РЕГИСТРАЦИИ.

Поиск:

/([0-9]+)('(<){1}/(MyTag>){1}')? 

Заменить:

,\1\3\4 
Смежные вопросы