2010-06-04 80 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

相关问题