tags:

views:

160

answers:

2

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#.

+1  A: 

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]+)")
Hasan Khan
A: 

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.

Anirudh Goel