RegEx - Сопоставьте все, что предшествует заданным символам, а затем что угодно

Я пытаюсь заменить символы, но не могу понять, как выбрать только их.

Допустим, у меня есть этот фрагмент текста. Мне нужно выбрать «non_regd», зная, что в какой-то момент ему предшествует «Заданный заголовок».

<title>Given title</title>
<link>http://loremipsum.com/given-title/</link>
<pubDate>Sat, 25 Oct 2014 00:00:00 +0000</pubDate>
<dc:creator><![CDATA[non_regd]]></dc:creator>
<guid isPermaLink="false">http://loremipsum.com/given-title/</guid>
<description></description>

Моя идея была

(?<=Given title</title>(.*?))non_regd

но это, по-видимому, не разрешено RegEx.

Есть идеи? Спасибо

Редактировать: я использую для этого только Notepad++. Мне просто нужно заменить часть «не-regd» на что-то другое. Однако проблема в том, что в файле много похожих фрагментов кода, поэтому он должен быть конкретным.


person MartyCashew    schedule 27.11.2015    source источник
comment
XML Parser действительно следует использовать для анализа XML, а не RegEx   -  person Alex K.    schedule 27.11.2015
comment
^ согласен. Кроме того, какой язык/регулярное выражение вы используете? Javascript, в отличие от PCRE или Python или почти любого другого варианта, не поддерживает просмотр назад.   -  person R Nar    schedule 27.11.2015
comment
Не используйте утверждение. Given title</title>(.*?)non_regd   -  person    schedule 27.11.2015
comment
практически все механизмы регулярных выражений не поддерживают просмотр переменной длины. Расскажите нам, что именно вы хотите сделать со спичкой, если бы вы могли ее получить.   -  person Bohemian♦    schedule 27.11.2015


Ответы (1)


Наконец-то нашел то, что работает.

Given title</title>.*?\Knon_regd

\K делает волшебный трюк. хотя это обходной путь. Спасибо всем за помощь.

person MartyCashew    schedule 27.11.2015
comment
\K имеет смысл, но пытаться сопоставить подстроку саму по себе для замены просто нелепо. Для этого существуют группы захвата. - person ; 27.11.2015