До 4 лет назад я знал регулярные выражения в моей руке, но я их не трогал, так что мне нужна помощь.Кронштейн, который находится внутри одинарных кавычек с знаком процента
Как создать регулярное выражение для замены всех вхождений 'whatever'
как '%whatever%'
, включая одинарные кавычки?
Я хотел бы следующие строки, чтобы преобразовать, как указано ниже:
Original Convert To
hello 'world' hello '%world%'
'foo' bar '%foo%' bar
'foo bar' '%foo bar%'
foo 'bar' but gar 'har' foo '%bar%' but gar '%har%'
Обратите внимание особ. последний пример. Хочу ленивый совпадений и не жадный. Жадный матч в последнем случае заменит исходную строку значением foo
'% ..%' `
Я использую C#. Ближайший я пришел первый из них является:
Regex.Replace(s, "[Hh][Ee][Ll]{2}[Oo] '.*'", "[Hh][Ee][Ll]{2}[Oo] '%.*%'");
Но это, очевидно, неправильно. Я не знаю, как вернуть все, что было в одиночных кавычках.
ОБНОВЛЕНИЕ: Благодарим всех вас за ответы. Они все очень полезны. Я помню, что теперь смотрю на ваши ответы. Вещь, которую я отсутствовала, была ссылкой на символ лица или что-то, что она называлась там, где вы могли ссылаться на все предыдущие совпадения.
Почему все отлов и обратная ссылка? Это совершенно не нужно. – nhahtdh
@nhahtdh Да, вы правы ... но я отправил ответ для этого с помощью другого подхода с регулярным выражением. Я знаю, что мы можем это сделать, как указал JE SUIS CHARLIE, но мой - другой подход. –