1

私は正規表現を持っています

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

%word% は".*?"|[a-zA-Z]+ 私が書いたように定義されています

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

キャプチャ グループを使用して縮小する方法はありますか?

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

しかし\1、引用符で囲まれた文字列または単語である可能性があるため、キャプチャされたものがわからないため、最初のキャプチャを繰り返すことを意味するため、使用できないと思います。

以前に書かれたグループと一致するものを参照するために使用できる類似のもの。私はC#で働いています。

4

2 に答える 2

1

String.Format を使用して繰り返しを回避し、正規表現グループを文字通り繰り返す方法はありません

String.Format("{0}([<]{0})*", @"("".*""|[a-zA-Z]+)")
于 2009-03-12T11:26:36.197 に答える
0

この機能はまだサポートされていないため、文字列置換を作成しました。ここで、%% を使用して正規表現に置き換える必要がある特定の単語を記述し、テキストに定義された正規表現に置き換えるプログラムを記述しました。

于 2009-03-18T10:15:31.147 に答える