正规表达式如何匹配空字符
例如:<RewriterRule>
<LookFor>~/NewList_([0-9]*)/([\w\s]*)/ </LookFor>
<SendTo>~/NewList.aspx?class=$1</SendTo>
</RewriterRule>
当输入的网址是 ..../NewList_1// 的时候会出错,不知道([\w\s]*)这个该如何写? --------------------编程问答-------------------- \s 匹配空白字符 为什么上面的会出错? --------------------编程问答-------------------- 换[^\]*试试
这样写的正则没见过 --------------------编程问答-------------------- 换[^\]*后提示
未终止的 [] 集。 --------------------编程问答-------------------- ~/NewList_([0-9]*)/.*/ --------------------编程问答-------------------- static void Main(string[] args)
{
string pattern = @"~/NewList_([0-9]*)/([\w\s]*)/";
string str = "~/NewList_1//";
Console.WriteLine(new Regex(pattern).IsMatch(str).ToString());
}
测试通过,看看是不是程序别处的逻辑有问题? --------------------编程问答--------------------
正则没看出有什么问题,报什么错?
试下下面这个:
<RewriterRule>
<LookFor>~/NewList_([0-9]*)/([\w\s]*?)/ </LookFor>
<SendTo>~/NewList.aspx?class=$1 </SendTo>
</RewriterRule>
改成[^\\]* --------------------编程问答-------------------- 肯定不是正则的问题!!
看看别的地方吧 --------------------编程问答-------------------- 换成
<RewriterRule>
<LookFor>~/NewList_([0-9]*)/([\w\s]*?)/ </LookFor>
<SendTo>~/NewList.aspx?class=$1 </SendTo>
</RewriterRule>
也不行
当输入的网址是 ..../NewList_1// 也是跳转到 404错误页面 --------------------编程问答-------------------- <RewriterRule>
<LookFor>~/NewList_([0-9]*)/([\w\s]*)/ </LookFor>
<SendTo>~/NewList.aspx?class=$1 </SendTo>
</RewriterRule>
..../NewList_1/ a/ 前面有空格可以正常显示
..../NewList_1/a / 后面有空格提示错误:请检查以下 URL 并确保其拼写正确
..../NewList_1// 中间无字符,直接跳转到404错误页面 --------------------编程问答--------------------
你需要放到浏览器上做虚拟网或实际站点测试才准,我看看自己的也没问题,光\s就行了,但实际测试却是404错误页 --------------------编程问答-------------------- static void Main(string[] args)
{
string pattern = @"~/NewList_([0-9]*)/([\w\s]*)/";
string str = "~/NewList_1//";
Console.WriteLine(new Regex(pattern).IsMatch(str).ToString());
}
--------------------编程问答-------------------- 这样可以
<RewriterRule>
<LookFor>~/NewList_([0-9]*)/([\w\s]*) </LookFor>
<SendTo>~/NewList.aspx?class=$1 </SendTo>
</RewriterRule>
这样的不可以
<RewriterRule>
<LookFor>~/NewList_([0-9]*)/([\w\s]*)/ </LookFor>
<SendTo>~/NewList.aspx?class=$1 </SendTo>
</RewriterRule>
就差网址上的最后一个斜杠,但这个站已经好几个月了,如果修改成没/结尾的对搜索引擎就很不友好了,希望大家能帮我看看,如何能让有/的也能正常显示
备注:这个不是正则的问题,因为是其他问题 --------------------编程问答-------------------- 学习了!!
帮你顶!! --------------------编程问答-------------------- ..../NewList_1//
这个网址名称就不合法吧?没见过两个斜杠连在一起的网址 --------------------编程问答-------------------- --------------------编程问答-------------------- Application_Request
{
if(Request.Url.EndsWith("//"))
Response.Redirect(Request.Url.TrimEnd('/')+"/");
}
补充:.NET技术 , C#