正则表达式的问题

时间:2009-12-28 14:33:47

标签: php regex

我的php脚本应该验证网站的地址,用户在表单中输入。 地址应如下所示:

http://example.com/example/{some numbers}/

http://example.com/example/{some numbers}

我考虑过这样的事情,但它不起作用:

/^(http:\/\/)?example\.com\/example\/\d{1}(\/?)$/

你能告诉我我错在哪里吗?

3 个答案:

答案 0 :(得分:6)

\d{1}表示:只有一位数。也许你想做\d+(至少一位数)

答案 1 :(得分:0)

嗯,有些数字还是一些数字?如果你的意思是第一种情况,贪婪的修饰符是错误的,因为它告诉你的正则表达式只匹配一个小数。此外,它在这里工作得很好。

答案 2 :(得分:0)

为什么不使用PHP的内置filter mechanism呢?

filter_var('http://example.com/foo', FILTER_VALIDATE_URL); // returns the URL
filter_var('not an URL', FILTER_VALIDATE_URL);           // returns false

探索some examples

此外,还有parse_url可以将任何网址拆分为其组件。