为什么正则表达式会匹配否定字符类中列出的重音/unicode 字符?
$string1 = preg_replace('/[^A-Za-z0-9äöü!&_=\+-]/', ' ', $string4);
此正则表达式不应替换字符 äöü。 在 Ruby 中,它按预期工作。 但在 PHP 中,它还取代了 ä ö 和 ü。
有人可以给我提示如何修复它吗?
$string1 = preg_replace('/[^A-Za-z0-9äöü!&_=\+-]/', ' ', $string4);
This Regex shouldn't replace the chars äöü.
In Ruby it worked as expected.
But in PHP it replaces also the ä ö and ü.
Can someone give me a hint how to fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
设置
u
模式修饰符 (告诉 php 将正则表达式视为 UTF-8 字符串)。Set the
u
pattern modifier (to tell php to treat the regex as a UTF-8 string).我认为这应该有效:
i think this should work:
Unicode 支持是 PHP 6 承诺的功能之一。
目前在 php5
Unicode support is one of the features promised for PHP 6.
Currently in php5