2012-03-14 10 views
0

I持って次のコード:`startat`を指定すると、部分文字列の先頭に一致することはできますか?

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

私はstartatパラメータを指定すると、まだ同等の部分文字列を取るのと同じ結果が得られようになる^以外の私のパターンで使用する文字はありますか?言い換えれば、私が渡している文字列の始まりでなくても、テストしている部分文字列の先頭に一致させることができますか?私は文字列に沿って正規表現を移動するので、私は部分文字列を作成したくないので、私はそれを私のパターンにハードコードすることはできません。

+1

'.IsMatch(String、Int32)' falseが奇妙に見える... – ephemient

+0

@ ephemient-これは私が思ったことです。 – dlras2

答えて

1

Try \G、例えば:

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

\G試合前の試合が終了した時点(または以前にマッチしていないの文字列の先頭)で。

+0

これは私が欲しいものです、ありがとう! http://www.regular-expressions.infoはこれで私に失敗しました。 – dlras2

-1

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

+0

申し訳ありませんが、私の質問はあいまいでした。私はそれを言い返した。 ( '\ t'はスペースではなくタブにマッチすることにも注意してください) – dlras2

+0

try var regex = new Regex(@" [\ w] * \ d + \ b "); –

+0

私が指定したどのような開始位置でも、私のパターンが最初に一致していることを確認したい。あなたは私の具体例をあまりにも抱き締めています。 – dlras2

関連する問題