有关 preg_match/regex 的帮助
我不知道正则表达式,所以请帮忙。对于以下代码:
$req_user = trim($_GET['user']);
if(!preg_match("^([0-9a-z])+$", $req_user)){
//do something ...
}
我收到此错误:注意:找不到结束分隔符“^”。
I don't know regex, so please help. For the following code:
$req_user = trim($_GET['user']);
if(!preg_match("^([0-9a-z])+$", $req_user)){
//do something ...
}
I get this error: NOTICE: No ending delimiter '^' found.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 php 中给出正则表达式时,您需要在字符串的开头和结尾放置一个匹配字符来分隔它。因此,抱怨是它在字符串的开头看到一个 ^ ,并假设它是分隔符,但末尾没有匹配的字符。因此,您确实需要一个字符串,就像
在 php.ini 中输入正则表达式一样。
When giving a regex in php you need to put a matching character at the beginning and end of the string to delimit it. So, the complaint is that it sees a ^ at the start of the string, and assumes it is the delimiter, but there is no matching character at the end. As such, you really need a string like
when entering the regex in php.
$req_user = trim($_GET['user']);
if(!preg_match("!^([0-9a-z])+$!", $req_user)){
//做某事...
。
您必须在正则表达式的开头和结尾添加一个 Char 才能使其正常工作
该字符限制正则表达式区域。最后之后!您可以添加忽略大小写等修饰符。
$req_user = trim($_GET['user']);
if(!preg_match("!^([0-9a-z])+$!", $req_user)){
//do something ...
}
You have to add an Char on the start and end of the regexp to have it working.
This char restricts the regexp-area. After the last ! you can add modifiers for case-ignore etc.