по поводу возможного поста дубликатов: Replace only some groups with RegexRegex для сохранения номера в замене группы, содержащее число
Это не боян, как пост заменяет группу со статическим текстом, что я хочу, чтобы заменить группу, сохраняя текст в группе.
У меня есть некоторые тексты, содержащие шаблон, как:
\super 1 \nosupersub
\super 2 \nosupersub
...
\super 592 \nosupersub
Я хочу, чтобы заменить их, используя регулярные выражения таким образом, чтобы они стали:
<sup>1</sup>
<sup>2</sup>
...
<sup>592</sup>
Итак, я использую следующее регулярное выражение (обратите внимание на группа (\d+)
):
RegexOptions options = RegexOptions.Multiline; //as of v1.3.1.0 default is multiline
mytext = Regex.Replace(mytext, @"\s?\\super\s?(\d+)\s?\\nosupersub\s", @"<sup>\1</sup>", options);
Однако, вместо того, чтобы получить то, что я хочу, я получил все результаты заменены <sup>\1</sup>
:
<sup>\1</sup>
<sup>\1</sup>
...
<sup>\1</sup>
Если я пытаюсь регулярное выражение замены с помощью текстового редактора, как https://www.sublimetext.com, а также с помощью Python
, это нормально.
Как получить такую групповую замену (\d+)
вот так (сохранить номер) в C#
?
Возможный дубликат [Заменить только некоторые группы с помощью регулярных выражений] (http://stackoverflow.com/questions/6005609/replace-only-some-groups-with-regex) –
@ M.kazemAkhgary пост заменяет группу статический текст 'AA'. Я хочу, чтобы номер был сохранен. – Ian
Я думаю, вам нужно использовать '$ 1' вместо' \ 1' в заменяющей строке. – petelids