假設我想在字符串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