使用正则表达式常量返回两个标签之间的字符串
本文关键字:两个 标签 之间 字符串 正则表达式 常量 返回 | 更新日期: 2023-09-27 18:36:23
我正在尝试在 C# 中使用
var added = Regex.Match(Text,
"'[BEGINTAG'](.+?)'['/ENDTAG']",RegexOptions.None);
以返回文本字符串中标签 [BEGINTAG] 和 [/ENDTAG] 之间的字符串。我无法弄清楚我的正则表达式常量出了什么问题。
你的正则表达式很好。您只需要提取组 1(括号之间匹配的内容)
在 C# 中,这变成了
Regex regexObj = new Regex(@"'[BEGINTAG'](.+?)'[/ENDTAG']");
resultString = regexObj.Match(subjectString).Groups[1].Value;
让我知道这是否有效
另外,仅供参考,您不需要像现在这样逃避。这也很好:
'[BEGINTAG](.+?)'[/ENDTAG]
一个可能的问题是字符串之前没有@
,因此 C# 将'
字符视为 C# 转义而不是正则表达式转义。
Buckley 的答案显示了如何在字符串前面加上 @
,以便将'
作为正则表达式转义处理。在 C# 中将这种格式用于正则表达式几乎总是更好。否则你最终会得到这样的东西。
var added = Regex.Match(Text,
"''[BEGINTAG''](.+?)'']''/ENDTAG'']", RegexOptions.None);
我觉得很难读。