2010-06-04 84 views
1

我需要一些幫助,寫一個正則表達式驗證,以檢查特定的值 這裏我有什麼,但它不工作正則表達式檢查,如果字符串包含一定的價值

Regex exists = new Regex(@"MyWebPage.aspx"); 
Match m = exists.Match(pageUrl); 

if(m) 
{ 
    //perform some action 
} 

所以我基本上想知道當變量pageUrl將包含值MyWebPage.aspx 也如果可能的話結合這個檢查來覆蓋幾個例子MyWebPage.aspx,MyWebPage2.aspx,MyWebPage3.aspx

謝謝!

回答

3

試試這個

"MyWebPage\d*\.aspx$" 

這將使所謂MyWebPage#的.aspx其中#是1個或多個數字的任意頁面。

+1

缺少非數字大小寫,並且沒有考慮查詢字符串參數。 – jvenema 2010-06-04 18:47:19

+0

謝謝@jvenema我改變了+ * – 2010-06-04 19:06:27

1
if (Regex.Match(url, "MyWebPage[^/]*?\\.aspx")) .... 

這將匹配任何形式的MyWebPageXXX.aspx(其中XXX是零個或多個字符)。它不會匹配MyWebPage/Test.aspx的然而

1

該正則表達式應該在MyWebPage.aspx在你PAGEURL,儘管偶然的情況下工作。您確實需要用\.替換點(。)才能轉義它。

Regex exists = new Regex(@"MyWebPage\.aspx"); 

如果你想可選的MyWebPage位之後,匹配單號,然後找\ d的(可選)的存在:

Regex exists = new Regex(@"MyWebPage\d?\.aspx"); 
1

我不會發佈一個正則表達式,爲他人有好的事情發生,但有一件事情可能是個性問題。正則表達式默認情況下區分大小寫。 Regex類確實有Match函數(以及MatchesIsMatch)的靜態超載,它需要RegexOptions參數,允許您指定是否要忽略大小寫。

例如,我不知道如何獲取pageUrl變量,但取決於用戶在其瀏覽器中鍵入URL的方式,可能會得到不同的腸衣,這可能會導致您的正則表達式找不到匹配項。

+0

好的電話 - 我忘記了那個消息。 – 2010-06-04 19:06:15

相關問題