【问题标题】:UTF8 safe preg_quote() alternative?UTF8 安全 preg_quote() 替代方案?
【发布时间】:2014-08-12 09:55:13
【问题描述】:

据我从 PHP 文档 (found here) 中得知,似乎没有此函数的 mb 版本。显然有人已经提出了这个问题,但他们的报告被忽略了,因为它的格式不正确(found here)。是否有我不知道的 preg_quote() 替代方法,或者它必须是 UTF8 字符串的大型正则表达式?

如果它有所作为(我怀疑它确实如此,但我不妨把它扔在那里),我需要处理的字符是简体中文,它是日文字符集(片假名)的一个子集。

需要明确的是,我确实尝试只使用 preg_quote(),但它破坏了字符。

【问题讨论】:

  • 不要将 mb_* 库用于正则表达式,因为 PCRE 支持带有 u 修饰符的 UTF8。
  • 1) 日语不是“片假名”,简体中文也不是它的子集。 2)你到底遇到了什么问题?显示一段示例代码(关闭的错误报告也没有任何示例)。 3) 为我工作:3v4l.org/Rn0eT

标签: php regex utf-8


【解决方案1】:

我也在看这个,但后来看了 utf-8 编码并意识到它不会有问题,因为多字节序列中的所有字节都将其 msb 设置为 1,并且所有 preg_quote 受影响的字符都在ASCII 7 位范围。受影响的字符没有重叠,因此 preg_quote 可以正常工作。

如果您使用多字节分隔符,您会遇到问题,但我不知道您为什么想要它或它是否受支持。

虽然这个问题已经存在一年了,但我认为它会帮助其他人寻找相同的信息。

【讨论】:

    猜你喜欢
    • 2016-03-15
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多