gpt4 book ai didi

php - 允许在正则表达式中使用括号和其他符号

转载 作者:可可西里 更新时间:2023-10-31 23:52:13 24 4
gpt4 key购买 nike

我制作了这个正则表达式:

^[a-zA-Z0-9_.-]*$

支持:

letters [uppercase and lowercase]
numbers [from 0 to 9]
underscores [_]
dots [.]
hyphens [-]

现在,我想添加这些:

spaces [ ]
comma [,]
exclamation mark [!]
parenthesis [()]
plus [+]
equal [=]
apostrophe [']
double quotation mark ["]
at [@]
dollar [$]
percent [%]
asterisk [*]

例如,这段代码只接受上面的一些符号:

^[a-zA-Z0-9 _.,-!()+=“”„@"$#%*]*$

返回:

Warning: preg_match(): Compilation failed: range out of order in character class at offset 16

最佳答案

确保将连字符 - 放在字符类的开头或结尾,否则需要对其进行转义。试试这个正则表达式:

^[a-zA-Z0-9 _.,!()+=`,"@$#%*-]*$

还要注意,因为 * 它甚至会匹配一个空字符串。如果您不想匹配空字符串,请使用 +:

^[a-zA-Z0-9 _.,!()+=`,"@$#%*-]+$

或者更好:

^[\w .,!()+=`,"@$#%*-]+$

测试:

$text = "_.,!()+=,@$#%*-";
if(!preg_match('/\A[\w .,!()+=`,"@$#%*-]+\z/', $text)) {
echo "error.";
}
else {
echo "OK.";
}

打印:

OK.

关于php - 允许在正则表达式中使用括号和其他符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18659886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com