正则表达式在C#中不符合预期

时间:2011-12-22 04:48:24

标签: c# regex

我正在使用以下代码:

string tile = "a1";
Regex regex= new Regex(@"/([a-z])(\d{1,2})/i");
if (regex.Match(tile).Success) Console.WriteLine("Found a match.");
    else Console.WriteLine("No match.");

并且控制台返回“No match”。正则表达式本身对我来说似乎很好,但我可能错过了一些简单的东西。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:5)

您正在使用一些javascript正则表达式描述符。尝试:

Regex regex = new Regex(@"([a-z])(\d{1,2})", RegexOptions.IgnoreCase);

然后您可能想要使用IsMatch()

if(regex.IsMatch(tile))
{
    // ...
}

答案 1 :(得分:2)

试试这个:

string tile = "a1";
Regex regex = new Regex(@"([a-z])(\d{1,2})", RegexOptions.IgnoreCase);
if (regex.Match(tile).Success) Console.WriteLine("Found a match.");
    else Console.WriteLine("No match.");

答案 2 :(得分:0)

Regex regex = new Regex(@"([a-z])(\d{1,2})");

我不确定为什么你有一个前导/和一个尾随/i。这些字符分别与字符//i匹配。