我想创建正则表达式,它将接受字母,特殊字符,数字的组合,但不仅仅是字母或特殊字符或数字
例如: 它应该接受
但它不应该接受
这就是我的尝试:
regex:/^(?![0-9]*$)[a-zA-Z0-9\s\-()\/ ]+$/'
此正则表达式允许用户接受字母,数字和特殊字符的组合,但不仅仅是数字。
答案 0 :(得分:2)
通过将一些负面预测链接到正则表达式,所以当同一行中只有1个类型+空格时,它将不匹配。
$str = '1 Slice brown bread (wheat)
1 Tbsp
1/2 cup
Slice brown bread
1
@#%&%&*';
$re = '/^(?!\W+$)(?![\d\s]+$)(?![A-Za-z\s]+$).+$/m';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
var_dump($matches);
顺便说一下,在例子中,所有的接受似乎都以数字开头,并且有字母
因此,对于$re = '/^(?=.*[A-Za-z])\d+.+$/m';
,要匹配以数字开头且至少包含字母的行,它也只会匹配前3个示例。
答案 1 :(得分:1)