Question

I have a regex where

%word% can occur multiple times, separated by a "<"

%word% is defined as ".*?"|[a-zA-Z]+ so i wrote

(".*"|[a-zA-Z]+)([<](".*"|[a-zA-Z]+))*

Is there any way i can shrink it using capturing groups?

(".*"|[a-zA-Z]+)([<]\1)*, 

But i don't think \1 can be used as it'd mean repeat the first capture, as i would not know what was captured as it can be a quoted string or a word.

Any thing similar i can use to refer matching the previously written group. I'm working in C#.

Was it helpful?

Solution 2

As the support is not there yet for the feature, i made a string replacer, where i wrote the specific words i need to replaced by regex using %% and then wrote the program to replace it by the regular expression defined for the text.

OTHER TIPS

using String.Format to avoid repetition and no there is no way to repeat the regex group literally

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top