|
|
1
18
看起来这是一个“功能”,请参见 http://bugs.php.net/bug.php?id=37391 “U”开关只对PCRE有意义,PHP本身并不知道。 从PHP的角度来看,字符串是字节序列,返回字节偏移量似乎是合乎逻辑的(我不说“正确”)。 |
|
2
34
虽然 U 修饰符使模式和主题都被解释为UTF-8,捕获的偏移量仍然以字节为单位计数。
你可以使用
|
|
|
3
25
尝试添加这个 (*UTF8) 在regex之前:
魔术,感谢在 http://www.php.net/manual/es/function.preg-match.php#95828 |
|
|
4
5
请原谅我做了尸检,但可能有人会发现它很有用:下面的代码既可以代替preg-match,也可以代替preg-match,返回正确的匹配 对的 UTF8编码字符串的偏移量。
我的示例输出:
|
|
|
5
1
如果您只想找到h的多字节安全位置,请尝试mb_strpos()。
输出:
|
|
|
6
1
我编写了一个小类来将preg_match返回的偏移量转换为适当的utf偏移量:
你可以这样使用它:
|
|
7
0
你可能想看看 T-Regx 图书馆。
这个
|
|
FutureCake · 正则表达式在数字序列之前匹配子字符串 7 年前 |
|
|
Paul Allsopp · Regex替换PHP类中的函数名 7 年前 |
|
|
HBasiri · Regex:匹配恶意ASP会话ID 7 年前 |