我需要 UTF-8 字符的正则表达式匹配,其中我的 PHP 文件是 ANSI 文件。
$regex = "/Number:([\w\-]{0,100})<\/td>/";
搜索文本中的冒号不是普通冒号,它是 UTF-8 全角冒号。如果我的PHP文件也是UTF-8,那么我可以直接输入特殊字符,没有问题。但是,我的 PHP 文件是 ANSI,由于其他地方的限制,我无法更改它。
正则表达式应该怎样才有效?
如果有解决方案,我们将不胜感激。
最佳答案
全角冒号十六进制代码为 FF1A
.
在 PHP 正则表达式中,您可以使用 \x{<HEX>}
正则表达式中的表示法。
因此,使用
\x{FF1A}
匹配单个:
这是一个short demo :
$re = '/\x{FF1A}\w+/u';
preg_match($re, ":here 123", $m);
print_r($m); // => [0] => :here
关于php - 将 UTF-8 字符存储在 ANSI 文件中 [PHP][REGEX],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34223102/