C# 获取字符串中模式的匹配项
我有以下正则表达式:C# 获取字符串中模式的匹配项,c#,regex,string,C#,Regex,String,我有以下正则表达式: ^[[][A-Za-z_1-9]+[\]]$ 我希望能够在字符串中获取此正则表达式的所有匹配项。比赛的形式应该是[随便什么]。在大括号内,还可能有一个u或数字字符。因此,我编写了以下代码: private const String REGEX = @"^[[][A-Za-z_1-9]+[\]]$"; static void Main(string[] args) { String expression = "([ColumnName] * 500) / ([A
^[[][A-Za-z_1-9]+[\]]$
我希望能够在字符串中获取此正则表达式的所有匹配项。比赛的形式应该是[随便什么]。在大括号内,还可能有一个u或数字字符。因此,我编写了以下代码:
private const String REGEX = @"^[[][A-Za-z_1-9]+[\]]$";
static void Main(string[] args)
{
String expression = "([ColumnName] * 500) / ([AnotherColumn] - 50)";
MatchCollection matches = Regex.Matches(expression, REGEX);
foreach (Match match in matches)
{
Console.WriteLine(match.Value);
}
Console.ReadLine();
}
但不幸的是,匹配的计数总是为零。显然,正则表达式正在检查整个字符串是否匹配,而不是从字符串中获取匹配项。我不确定正则表达式是否错误,或者我使用Regex.Matches的方式是否错误
有什么想法吗?您将正则表达式锚定到字符串的开头和结尾,因此它当然不会匹配任何内容 移除开头的锚^和结尾的锚^工程罚款:
[[][A-Za-z_1-9]+[\]]
它返回,正如您希望的那样:
[ColumnName]
[AnotherColumn]
您将正则表达式锚定到字符串的开头和结尾,因此它当然不会匹配任何内容 移除开头的锚^和结尾的锚^工程罚款:
[[][A-Za-z_1-9]+[\]]
它返回,正如您希望的那样:
[ColumnName]
[AnotherColumn]
您需要从模式中删除字符串起始/结束锚定“^和$,因为您要查找的匹配项实际上并不在字符串的起始和结束处。您也可以使用\[和\]而不是[[]和[\]]:
我们应该做到这一点 您需要从模式中删除字符串起始/结束锚定“^和$,因为您要查找的匹配项实际上并不在字符串的起始和结束处。您也可以使用\[和\]而不是[[]和[\]]:
我们应该做到这一点 请为我们提供表达式的输入。顺便说一句,为了简单起见,您可以使用\w=[a-zA-Z0-9_u3;],除非您明确地豁免0,那么当然,nevermind[不确定是否输入错误];实际上是的,那是个打字错误。感谢您指出:请为我们提供表达式的输入。顺便说一句,为了简单起见,您可以使用\w=[a-zA-Z0-9_u],除非您明确豁免0,那么当然,无需担心[不确定是否输入错误];实际上是的,那是个打字错误。感谢您指出: