2012-04-10 2 views
13
私は、SharePointのURLと一致しなければならなかった...正規表現で問題に直面しています

の中で正規表現「最短一致」と一致する方法..私はは、.NET

何かのような「最短」と一致する必要があります。

http://aaaaaa/sites/aaaa/aaaaaa/ 

m = Regex.Match(URL, ".+/sites/.+/"); 

m.Valueは、文字列全体に等しい...

は、どのように私はそれが

http://aaaaaaa/sites/aaaa/ 

と他には何を一致させることができます?

ありがとうございました!

答えて

19

.+は貪欲ですので、停止する前にできるだけ多くの文字が一致します。 .+?にそれを変更し、試合はできるだけ早く終了します:

m = Regex.Match(URL, ".+/sites/.+?/"); 
6

正規表現を単純にすべてではなく/以外のものに一致させるようにしてください。これは、文字クラス・アトム[^]のnot形式を使用して行います。

m = Regex.Match(URL, ".+/sites/[^/]+/"); 
+0

これはまだあなたが私は 'だと思う、それは怠惰にする必要があり、すべてのものと一致した+ /サイト/ [^ /] + /' – Robbie

+0

@Robbie。?それをテストして、それが動作する – JaredPar

+1

+1あなたが正しいと思う、私はそれが私が最初にテストしたときに私の部分にコピー貼りエラーがあったと思う(そして明らかにブートの理解の欠如) – Robbie