我需要一个与UTF-8字符匹配的正则表达式,其中我的PHP文件是ANSI文件。
$regex = "/Number:([w-]{0,100})</td>/";
搜索文本中的冒号不是普通的冒号,而是UTF-8全宽冒号。如果我的PHP文件也是UTF-8,那么我可以把特殊字符放进去,就没有问题了。然而,我的PHP文件是ANSI,由于其他地方的限制,我无法更改它。
正则表达式应该是什么才能工作?
如有解决方案,不胜感激。
全宽冒号十六进制代码为FF1A
。
在PHP正则表达式中,可以在正则表达式中使用x{<HEX>}
表示法。
因此,使用
x{FF1A}
匹配单个:
这里有一个简短的演示:
$re = '/x{FF1A}w+/u';
preg_match($re, ":here 123", $m);
print_r($m); // => [0] => :here