我需要一些帮助来编写正则表达式验证以检查特定值 这是我的,但它不起作用
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
谢谢!
答案 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
函数(以及Matches
和IsMatch
)的静态重载,它带有RegexOptions
参数,允许您指定是否要忽略案例。
例如,我不知道您是如何获取pageUrl
变量的,但根据用户在浏览器中输入网址的方式,您可能会得到不同的外壳,这可能会导致您的正则表达式无法找到匹配。