识别正则表达式中其他值中包含的值

时间:2012-10-02 07:20:26

标签: c# .net regex windows

我有一个字符串如下:

<String>VariableText</String>

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

正如文本所示,价值可能是变量。

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

2 个答案:

答案 0 :(得分:3)

嗯,有两种常见的正则表达式模式可以得到明确划分的'某事':

  • 使用捕获组:

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

......或者,在您的情况下:

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

内容将存储在$1变量中。

  • 使用lookarounds:

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

......或者,在您的情况下:

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

此模式将涵盖“所需内容”,并且无需使用正则表达式变量($1$2等。)

不过要注意,可变长度模式(例如(?<=\d+))可以用作.NET正则表达式中的后视表达式(感谢@Alan Moore有用的观察),但许多其他人缺乏此功能(或部分支持)。

答案 1 :(得分:0)

我认为这种模式可以做你想做的事情

string pattern =    "$<[s|S]tring>\w*</[s|S]tring>^";
Regex r= new Regex(pattern);