如何解决ASP.NET正则表达式问题
| 当在ASP.NET页面路由中用于URL重写时,我有一个适合我的正则表达式。 但是,当我尝试在ASP.NET代码的其他地方使用它时,它会使过去的字符串我不希望使用。 我的正则表达式是[-_a-zA-Z0-9/]+(\\.aspx(\\?.+)?)?
这意味着允许文件/路径没有扩展名或.aspx文件扩展名的字符串,但不允许具有其他扩展名的文件/路径。 \“ whatever.js \”。
我在应用程序的其他地方使用它失败,如下所示:
if (Regex.IsMatch(pageUrl,@\"[-_a-zA-Z0-9/]+(\\.aspx(\\?.+)?)?\"))
看起来,作为字符串匹配的一部分,它可以让它通过。但是,如何确定整个字符串(pageUrl)匹配?
解决方法
在开始和结束处使用^和$强制其生成整个字符串:
if (Regex.IsMatch(pageUrl,@\"^[-_a-zA-Z0-9/]+(.aspx(\\?.+)?)?$\"))
有关更多详细信息,请参见\“正则表达式中的锚\”上的MSDN页面。
,这样尝试
System.Text.RegularExpressions.Regex regexUrl =新的System.Text.RegularExpressions.Regex(\“ [-_a-zA-Z0-9 /] +(。aspx(\\?。+)?)?\”);
检查regexUrl.IsMatch(pageUrl)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。