我有一个用 VBScript 编写的遗留代码,它使用正则表达式,我需要用 c# 重写这段代码。不幸的是,我无法将带有“Submatches”集合的 VBScript RegEx 类映射到相应的 C# 代码。
这是 VBScript:RegExp=CreateObject("VBScript.RegExp"); RegExp.Pattern = ' 一些模式 RegExp.IgnoreCase=True; RegExp.Global=真;RegExp.Multiline=真;
Matches=RegExp.Execute(someText);
For Each Match In Matches Do
If Match.SubMatches(4) <> Nothing Then
' some code goes next
问题是:我无法弄清楚 VBScript 的“子匹配”的等效 C# Regex 方法是什么。
我的C#:
var Regex = new Regex(@"(\{\n?)|(""(""""|[^""]*)*"")|([^\},\{]+)|(,\n?)|(\}\n?)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
var Matches = Regex.G(textBox1.Text);
var Tree = new SimpleTree<string>();
foreach (var Match in Matches)
{
}
“foreach”循环中的“匹配”对象是一个“对象”,没有任何“子匹配”成员。如何在 C# 中实现子匹配?