2009-03-12 17 views
1

c ı ı daraltılabilir bir yolu var mı yüzdenYönlendiren zaten #

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

yazdığı ".*?"|[a-zA-Z]+ olarak

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

% kelimesi% tanımlanan bir düzenli ifade var, regex grubunu varolan yakalama gruplarını kullanarak?

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

Ama bunun bir alıntı dize veya bir kelime olabildiğince i yakalandığı bilmiyor gibi, birinci yakalama tekrarlamak ifade edecek şekilde \1 kullanılabilir sanmıyorum.

Önceden yazılmış grupla eşleşmeyi belirtmek için kullanabileceğim benzer bir şey. C# 'da çalışıyorum.

+0

grep ile çalışıyor, ilginç bir soru :) +1 –

cevap

0

regex grubunu tekrar etmek yolu yoktur, ben yazdığı bir dize replacer, yapılan %% kullanarak regex ile değiştirmem gereken belirli kelimeler ve ardından programı, metin için tanımlanan normal ifadeyle değiştirecek şekilde yazdım.

1

tekrarını önlemek için String.format kullanarak ve destek özelliği için henüz olmadığı gibi hiçbir anlamıyla

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")