ссылаясь на уже существующую группу в регулярном выражении, c #
Вопрос
У меня есть регулярное выражение, где
%word% can occur multiple times, separated by a "<"
% word% определяется как ". *? " | [a-zA-Z] +
так что я написал
(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*
Можно ли как-нибудь уменьшить его, используя группы захвата?
(".*"|[a-zA-Z]+)([<]\1)*,
Но я не думаю, что \ 1
можно использовать, поскольку это означало бы повторение первого захвата, поскольку я не знал бы, что было захвачено, поскольку это может быть строка в кавычках или слово. Р>
Любая похожая вещь, которую я могу использовать, чтобы ссылаться на ранее написанную группу. Я работаю в C #.
Решение 2
Поскольку поддержки этой функции пока нет, я сделал заменитель строки, где я написал конкретные слова, которые нужно заменить на регулярное выражение, используя %%, а затем написал программу, чтобы заменить ее регулярным выражением, определенным для текст.
Другие советы
используя String.Format, чтобы избежать повторения, и нет никакого способа повторить группу регулярных выражений буквально
String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")