"Hello" returns true
"12345" returns true
"Hello1" returns false
"123H" returns false
正则表达式只能检查除两者之外的字母和数字?
或
检查PHP的功能?
答案 0 :(得分:2)
正则表达式:
/^[A-za-z]*|[0-9]*$/
检查行的开头,然后检查任意数量的字母或任意数量的数字,然后检查行尾。
空白行将返回true。如果这是一个问题,请将*
更改为+
。
答案 1 :(得分:2)
您可以使用类似的内容:^([A-Za-z]+)|([0-9]+)$
。这将确保字符串完全由字母组成,或者仅由数字组成,但不能同时包含两者。
您可以查看正则表达式here。
答案 2 :(得分:1)
^(?=(?:\d+|[a-zA-Z]+)$)[a-zA-Z0-9]+$
另一种变化。见演示。
https://regex101.com/r/sH8aR8/11
$re = "/^(?=(?:\\d+|[a-zA-Z]+)$)[a-zA-Z0-9]+$/m";
$str = "Hello\n12345\nHello1\n123H";
preg_match_all($re, $str, $matches);