如果指定`startat`,我可以匹配子串的开头吗?

时间:2012-03-14 04:48:58

标签: .net regex

我有以下代码:

var regex = new Regex(@"^\d+\b");
Console.WriteLine(regex.IsMatch("x 10", 2));           // False
Console.WriteLine(regex.IsMatch("x 10".Substring(2))); // True

除了^之外,我的模式中是否有一个字符可以让我指定一个startat参数,并且仍然会产生与获取等效子字符串相同的结果?换句话说,我可以匹配我正在测试的子字符串的开头,即使它不一定是我传入的字符串的开头吗?我将沿着字符串移动正则表达式,所以我不想创建大量的子字符串,我不能将其硬编码到我的模式中。

2 个答案:

答案 0 :(得分:1)

Try \G,例如:

var regex = new Regex(@"\G\d+\b");
Console.WriteLine(regex.IsMatch("x 10", 2));

\G匹配上一个匹配结束的点(或之前未匹配的字符串的开头)。

答案 1 :(得分:-1)

var regex = new Regex(@“\ w \ t \ d + \ b”);