0

我有一个字符串如下:

<String>VariableText</String>

我需要一个正则表达式来识别节点内的“VariableText”值。

正如文本所暗示的,该值可能是可变的。

使用正则表达式如何实现这一点?

4

2 回答 2

3

好吧,有两种常见的正则表达式模式可以得到明确界定的“东西”:

  • 使用捕获组:

/%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 回答