Как заменить строку регулярным выражением, ищущим ':', и переменным пробелом? - PullRequest
0 голосов
/ 20 января 2020

Скажем, у меня есть строка:

publi c class MyClass: BaseClass

Я хочу заменить «MyClass» произвольной заменой, такой как «MyNewClass»

Я могу сделать это с помощью регулярного выражения, подобного этому:

Regex.Replace(fileOrigContents, $@"([^\p{{L}}0-9\.]){oldClassName}([^\p{{L}}0-9:])", $"$1{newClassName}$2$3");

Однако это не охватывает случаи, когда строка может быть

publi c класс MyClass: BaseClass

или

publi c класс MyClass: BaseClass

В этих случаях замена строки не выполняется не происходит

Во втором случае я смог заставить его работать с помощью этой модификации:

Regex.Replace(fileOrigContents, $@"([^\p{{L}}0-9\.]){oldClassName}(\s*:\s*[^\p{{L}}0-9:])", $"$1{newClassName}$2");

Но это не работает для третьего случая. Как я могу заменить имя класса и покрыть любую комбинацию пробелов и ':' с помощью регулярного выражения?

1 Ответ

0 голосов
/ 20 января 2020

Посмотрите, работает ли это: (?<=public class )MyClass *(?=:)

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...