相关疑难解决方法(0)

如何在.NET Regex中访问命名捕获组?

我很难找到一个很好的资源来解释如何在C#中使用命名捕获组.这是我到目前为止的代码:

string page = Encoding.ASCII.GetString(bytePage);
Regex qariRegex = new Regex("<td><a href=\"(?<link>.*?)\">(?<name>.*?)</a></td>");
MatchCollection mc = qariRegex.Matches(page);
CaptureCollection cc = mc[0].Captures;
MessageBox.Show(cc[0].ToString());
Run Code Online (Sandbox Code Playgroud)

然而,这总是只显示整行:

<td><a href="/path/to/file">Name of File</a></td> 
Run Code Online (Sandbox Code Playgroud)

我已经尝试过我在各种网站上找到的其他几种"方法",但我一直得到相同的结果.

如何访问我的正则表达式中指定的命名捕获组?

.net c# regex

249
推荐指数
3
解决办法
19万
查看次数

解析格式化的字符串

我正在尝试创建一个通用的格式化程序/解析器组合.

示例场景:

  • 我有一个string.Format()的字符串,例如 var format = "{0}-{1}"
  • 我有一个输入的对象(字符串)数组,例如 var arr = new[] { "asdf", "qwer" }
  • 我正在使用格式字符串格式化数组,例如 var res = string.Format(format, arr)

我想要做的是将格式化的字符串恢复回对象(字符串)数组.像(伪代码)的东西:

var arr2 = string.Unformat(format, res)

// when: res = "asdf-qwer"    
// arr2 should be equal to arr
Run Code Online (Sandbox Code Playgroud)

有没有经验做过这样的事情?我正在考虑使用正则表达式(修改原始格式字符串,然后将其传递给Regex.Matches以获取数组)并为格式字符串中的每个占位符运行它.这是可行的还是还有其他更有效的解决方案?

c# regex string

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×2

regex ×2

.net ×1

string ×1