我正在尝试在php中对名称标签进行输入检查,该名称标签由英语,中文和数字组成。
"/^[A-z0-9\p{Han}]{2,12}$/u";
我想实现12个字符的名称标签规则,其中汉字为2个单位,英文/数字为1个单位。
正则表达式可以匹配这样的规则吗?
举个例子:
六 matches because as of \p{Han} and 2 units
六1 matches because of 0-9, \p{Han}, and 3 units
1 does not match as of 1 unit
一二三四五六七 does not match as of 14 units
答案 0 :(得分:0)
经过一番修补,我有一个解决方案
"/^([A-Za-z0-9]{2}|\p{Han})([A-Za-z0-9]{1,2}|\p{Han}){0,5}$/u";
第一部分([A-Za-z0-9]{2}|\p{Han})
匹配2个单位,即1个汉字或2个Eng / Num。
立即性后跟([A-Za-z0-9]{1,2}|\p{Han}){0,5}
,它将0单位与5个汉字或10个Eng / Num字符匹配。总共12个单位。