只检查字符串的字母和数字,两者除外

Checking String only letters and numbers except both

"Hello" returns true
"12345" returns true
"Hello1" returns false
"123H" returns false

正则表达式可以只检查字母和数字吗?
或者
检查PHP的功能?

正则表达式:

/^[A-za-z]*|[0-9]*$/

检查行首,然后是任意数字的字母或任意数字,然后是行尾。

空行 return 为真。如果这是一个问题,请将 * 更改为 +

您可以这样使用:^([A-Za-z]+)|([0-9]+)$。这将确保该字符串要么只包含字母,要么只包含数字,但不能同时包含这两者。

您可以检查正则表达式here

^(?=(?:\d+|[a-zA-Z]+)$)[a-zA-Z0-9]+$

另一个 variation.See 演示。

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);