2009-09-10 35 views
4

我沒有使用正則表達式,所以請原諒我...如何使用RegEx?

我有這樣的字符串:

string str = "https://abce/MyTest"; 

我要檢查,如果特定字符串開頭「https://開頭」和結束用「/ MyTest」。

我該如何達到目的?

+0

你確定你想要// MyTest嗎?這似乎不是一個有效的網址。 – stevehipwell 2009-09-10 11:15:25

+0

你關心案件嗎?它可以是「mytest」嗎? – Kobi 2009-09-10 11:22:12

回答

17

這個正則表達式:

^https://.*/MyTest$ 

會做什麼你問。

^匹配字符串的開頭。

https://將完全匹配。

.*將匹配任何類型的任何數量的字符(*部分)(.部分)。如果您想確保中間至少有一個字符,請改爲使用.+

/MyTest完全匹配。

$匹配字符串的末尾。

要驗證匹配,使用方法:在MSDN Regex頁面

Regex.IsMatch(str, @"^https://.*/MyTest$"); 

更多信息。

+0

+1 U擊敗了我。 – stevehipwell 2009-09-10 11:16:12

+2

+1對於部件的細分:) – 2009-09-10 11:20:17

+1

@ Steve3000:最後!我花了最後三個小時被「毆打」:) – 2009-09-10 11:21:05

9

嘗試以下方法:

var str = "https://abce/MyTest"; 
var match = Regex.IsMatch(str, "^https://.+/MyTest$"); 

^標識符字符串的開頭相匹配,而$標識符字符串的末尾匹配。 .+位簡單地表示任何字符序列(除了空序列)。

當然,您需要爲此導入System.Text.RegularExpressions命名空間。

2

在.NET中:

^https://.*/MyTest$ 
1

嘗試Expresso,有利於構建.NET正則表達式,並教您在同一時間的語法得心應手的工具。

+0

+1我選擇的當前正則表達式工具。 – stevehipwell 2009-09-10 12:17:24

4

我想檢查一下特定的字符串是以「https://」開頭還是以「/ MyTest」結尾。

那麼,你可能使用正則表達式。但它更清晰(可能更快),只是say what you mean

str.StartsWith("https://") && str.EndsWith("/MyTest") 

然後,您不必擔心是否有任何在你的匹配字符串中的字符的正則表達式中需要轉義。 (對於這個例子,他們不。)

+0

是的!優秀點。 – 2009-09-17 15:49:35