你好我正在使用Yii匹配验证,我需要输入标签,用逗号分隔英文和阿拉伯字母:
应该接受英语或阿拉伯语:
tag1, tag2, tag3, وسم4, tag4
或只是阿拉伯语:
وسم1، وسم2، وسم3
请注意我需要使用英文逗号,
和阿拉伯语،
这是我尝试使用的正则表达式..但它不起作用:
/^[\w\s,]+$/ (working on english only )
/^[\w\s\p{Arabic}(,|،)]+$/ ( not working )
答案 0 :(得分:2)
^[\w\s]+(?:(?:,|،)[\w\s]+)*$
你可以使用它。参见演示。
https://regex101.com/r/hE4jH0/5
$re = "/^[\\w\\s]+(?:(?:,|،)[\\w\\s]+)*$/mu";
$str = "tag1, tag2, tag3, وسم4, tag4\nوسم1، وسم2، وسم3";
preg_match_all($re, $str, $matches);