使用Linq在String上运行正则表达式

Sim*_*ely 5 c# regex linq string

我有一个字符串,我希望使用Linq运行正则表达式将我的字符串减少到一个匹配我的reg ex的较小的子字符串.

我的代码目前给出了错误

'char'不包含'Name'的定义,也没有扩展方法'Name'可以找到'char'类型的第一个参数

我的代码:

string variable = result.Name.Select(r => regEx.Match(r.Name).Groups[2].ToString());
Run Code Online (Sandbox Code Playgroud)

Result.Name 是包含在自定义类中的字符串.

我做错了什么?我的语法/理解有什么问题?

dtb*_*dtb 19

你在找这样的东西吗?

string[] result = Regex.Matches(input, pattern)
                       .Cast<Match>()
                       .Select(match => match.Groups[2].Value)
                       .ToArray();
Run Code Online (Sandbox Code Playgroud)


Raw*_*ing 2

您正在调用Select单个字符串。Select将字符串视为一系列字符,因此rlambda 表达式中的 是char.

如果您只想将一个字符串传递到正则表达式中,并且只想输出一个匹配项,那么您根本不需要 LINQ。只需致电

string variable = regEx.Match(result.Name).Groups[2].ToString();
Run Code Online (Sandbox Code Playgroud)

result.Name(根据您的示例代码,我假设是您的单个字符串。)