ссылаясь на уже существующую группу в регулярном выражении, c #

StackOverflow https://stackoverflow.com/questions/638113

  •  10-07-2019
  •  | 
  •  

Вопрос

У меня есть регулярное выражение, где

%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]+)")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top