仅检查字符串除两者之外的字母和数字

时间:2015-01-07 08:18:45

标签: php regex

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

正则表达式只能检查除两者之外的字母和数字?

检查PHP的功能?

3 个答案:

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