比方说,我有以下几点:的preg_match与UTF8
$str1 = "via Tokyo";
$str2 = "via 東京";
我希望“通过”后,任何非空白字符相匹配。通常我会使用以下内容:
preg_match("/via\s(\S+)/", $str2, $match);
获取匹配字符。由于preg_match
不理解utf8,所以我认为这不适用于上述情况,但它在这种情况下完美工作。
这是否工作正常,因为preg_match
只是寻找字节不是空白,如果是的话,我可以安全地使用这个任何UTF8字符?
PS我知道,我真的应该使用mb_ereg
功能本(或完全避免PHP),但我正在寻找一个更好的理解为什么这个工程。谢谢!
它 “作品”,但它会考虑'U + 2003 EM SPACE','U + 200A HAIR SPACE',和其他字符用'Space'属性为非空间('\ S')代替空格('\ s')。 – hobbs