假设我想在字符串s
内匹配,只有当它恰好出现在索引n
处。如何在.NET中指定偏移量的Regex.IsMatch?
int n = 2;
Console.WriteLine(new Regex("abc").IsMatch("01abc", n)); // true
Console.WriteLine(new Regex("abc").IsMatch("0123abc", n)); // true (but want false)
Console.WriteLine(new Regex("^abc").IsMatch("01abc", n)); // false (but want true)
似乎只有这样,才能做到这一点不使用输入子字符串是这样的:
var match = new Regex("abc").Match("0123abc", n);
Console.WriteLine(match.Success && match.Index == n);
这是不是太糟糕,但如果没有匹配的起始偏移量,然后整个输入将被不必要地扫描,这对于大多数正则表达式来说可能比在匹配之前实际创建子字符串要慢。 (虽然我没有时间)。
我是否错过了一个明显的过载或设置,将限制匹配到提供的偏移只?
:O我也想这样做,但我不认为这是可能的。感谢您问这个问题:) – mpen 2011-01-24 18:08:47