【问题标题】:Store UTF-8 character in ANSI file [PHP][REGEX]在 ANSI 文件中存储 UTF-8 字符 [PHP][REGEX]
【发布时间】:2016-03-17 08:10:28
【问题描述】:

我需要一个 UTF-8 字符的正则表达式匹配,其中我的 PHP 文件是一个 ANSI 文件。

$regex = "/Number:([\w\-]{0,100})<\/td>/";

搜索文本中的冒号不是普通的冒号,它是一个 UTF-8 全角冒号。如果我的 PHP 文件也是 UTF-8,那么我可以只输入特殊字符,没有问题。但是,我的 PHP 文件是 ANSI,由于其他地方的限制,我无法更改它。

正则表达式应该如何工作?

我们将不胜感激。

【问题讨论】:

    标签: php regex utf-8


    【解决方案1】:

    全角冒号十六进制代码为FF1A

    在 PHP 正则表达式中,您可以在正则表达式中使用 \x{&lt;HEX&gt;} 表示法。

    因此,使用

    \x{FF1A}
    

    匹配单个

    这是short demo

    $re = '/\x{FF1A}\w+/u';
    preg_match($re, ":here 123", $m);
    print_r($m); // => [0] => :here
    

    【讨论】:

    • 谢谢,非常感谢。它仍然不匹配,我需要进一步研究它。
    • 您使用的是/u 修饰符吗?如果您操作 Unicode 字符串,这一点很重要。
    猜你喜欢
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多