【发布时间】:2015-01-07 08:18:45
【问题描述】:
"Hello" returns true
"12345" returns true
"Hello1" returns false
"123H" returns false
正则表达式可以只检查字母和数字,但两者除外?
或
检查PHP的功能?
【问题讨论】:
-
你的问题实在是看不懂
"Hello" returns true
"12345" returns true
"Hello1" returns false
"123H" returns false
正则表达式可以只检查字母和数字,但两者除外?
或
检查PHP的功能?
【问题讨论】:
正则表达式:
/^[A-za-z]*|[0-9]*$/
检查行首,然后是任意数量的字母或任意数量的数字,然后是行尾。
空行将返回 true。如果这是一个问题,请将 * 更改为 +。
【讨论】:
你可以使用类似这样的东西:^([A-Za-z]+)|([0-9]+)$。这将确保字符串要么完全由字母组成,要么完全由数字组成,但不能同时包含两者。
可以查看正则表达式here。
【讨论】:
^(?=(?:\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);
【讨论】: