0

私は次のような文字列を持っています:

<String>VariableText</String>

ノード内の「VariableText」値を識別するための正規表現が必要です。

テキストが示すように、値は可変である可能性があります。

正規表現を使用してこれをどのように達成できますか?

4

2 に答える 2

3

明確に区切られた「何か」を取得するための2つの一般的な正規表現パターンがあります。

  • キャプチャグループの使用:

/%PatternForOpeningDelimiter%(.+?)%PatternForClosingDelimiter%/

...または、あなたの場合:

/<String>(.+?)<\/String>/ 

コンテンツは$1変数に保存されます。

  • ルックアラウンドの使用:

/(?<=%PatternForOpeningDelimiter%).+?(?=%PatternForClosingDelimiter%)/

...または、あなたの場合:

/(?<=<String>).+?(?=<\/String>)/

このパターンは「必要なコンテンツ」をカバーし、正規表現変数(、、など)を使用する必要はありませ$1$2

ただし、可変長パターン(たとえば(?<=\d+)、など)は、.NET正規表現フレーバー(その有用な観察のための@Alan Mooreのクレジット)で後読み式として使用できることに注意してください。この機能が不足している(または部分的にサポートしている)。

于 2012-10-02T08:52:56.620 に答える
0

私はこのパターンがあなたが望むことをすることができると思います

string pattern =    "$<[s|S]tring>\w*</[s|S]tring>^";
Regex r= new Regex(pattern);
于 2012-10-02T07:27:11.597 に答える