正则表达式“Url不能以'/'或'〜'开头,不能包含'?'字符 “”

问题描述:

编辑:正则表达式“Url不能以'/'或'〜'开头,不能包含'?'字符 “”

谁能帮我写:(这里是一个答案)
可以尝试:

[RegularExpression(@"^([^\?~/])([^\?])*\s*$",ErrorMessage = "Url Cannot start with a '/' or '~', Cannot contain a '?' character")] 

[RegularExpression(@"^/.*\s*$", ErrorMessage = "Route Url must start with '/'")] 
+0

我试过^(/)+,但我是新来的正则表达式,希望有人能帮忙吗?!我如何包含另一个字符“〜”和另一个要求...... – user1102391 2012-03-08 21:20:57

+0

啊。这很接近。尽管如此,插入符号'^'在方括号'[]'中未使用时标记了字符串的开头。另外,括号'()'匹配一个组,你想要的是方括号(它匹配集合中的任何元素)。那种你有相匹配的字符串是:?![?^] /asdfkefasdf 你想要的是 /[^〜/] +/ 将匹配任何东西,除了'〜'或'/'对于第一个角色,然后什么都不是?之后。 – 2012-03-08 21:22:18

+0

谢谢..我想我试过/ [^〜/] [^?] + /但是如果我把'〜'放在字符串里就像“inde〜x”一样会出错 – user1102391 2012-03-08 21:31:43

我不能完全知道这是否是一个或两个问题。“网址不能以'/'开头,必须以'/'开头互斥。

假设是两个问题。

1)的正则表达式:一定不是以 '/' 或 '〜' 是

/^[^\/~]/ 

,如果你使用普通的斜杠分隔符 '/'。如果您正在使用Perl的RE与备用分隔符,你可以TO-

m|^[^/~]| 

略有简化,因为你没有逃脱字符类中的斜线。

2)对于RE:必须以斜杠是

/^\// 

问候:colin_e