我有一个字符串如下:
<String>VariableText</String>
我需要一个正则表达式来识别节点中的“VariableText”值。
正如文本所示,价值可能是变量。
如何使用正则表达式实现这一目标?
答案 0 :(得分:3)
嗯,有两种常见的正则表达式模式可以得到明确划分的'某事':
/%PatternForOpeningDelimiter%(.+?)%PatternForClosingDelimiter%/
......或者,在您的情况下:
/<String>(.+?)<\/String>/
内容将存储在$1
变量中。
/(?<=%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);