我使用preg_match
来测试带符号和数字的unicode模式。
$reg = '/^(?=.*\p{L})[\d\p{L}]+$/im';
$str = trim('станция44');
if (preg_match($reg, $str) === 1) {
echo 'Match';
} else {
echo 'Not match';
}
如果我对其进行测试,则会收到Not match
,但如果我删除^ and $
,则会收到Match
。为什么会这样?
答案 0 :(得分:0)
因为你正在使用p{L}
匹配,所以你需要在最后添加Unicode修饰符(u
):
$reg = '/^(?=.*\p{L})[\d\p{L}]+$/imu';