RegEx检查字符串是否包含特定值

时间:2010-06-04 18:44:00

标签: regex

我需要一些帮助来编写正则表达式验证以检查特定值 这是我的,但它不起作用

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

谢谢!

4 个答案:

答案 0 :(得分:3)

试试这个

"MyWebPage\d*\.aspx$" 

这将允许任何名为MyWebPage#.aspx的页面,其中#是1或更多数字。

答案 1 :(得分:1)

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

这将匹配任何形式的MyWebPageXXX.aspx(其中XXX为零个或多个字符)。它不匹配 MyWebPage / test.aspx 但是

答案 2 :(得分:1)

RegEx应该适用于MyWebPage.aspx在你的pageUrl中的情况,尽管是偶然的。你真的需要用\.替换点(。)来逃避它。

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

如果要在MyWebPage位之后可选地匹配单个数字,则查找(可选)存在的\ d:

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

答案 3 :(得分:1)

我不会发布一个正则表达式,因为其他人都有好的,但有一件事可能是个问题。默认情况下,正则表达式区分大小写。 Regex类确实具有Match函数(以及MatchesIsMatch)的静态重载,它带有RegexOptions参数,允许您指定是否要忽略案例。

例如,我不知道您是如何获取pageUrl变量的,但根据用户在浏览器中输入网址的方式,您可能会得到不同的外壳,这可能会导致您的正则表达式无法找到匹配。