【问题标题】:how to keep special characters using preg_replace in php [duplicate]如何在php中使用preg_replace保留特殊字符[重复]
【发布时间】:2018-11-15 21:43:51
【问题描述】:

我正在尝试使用preg_replace 函数,它按预期工作。问题是它还删除了像Ö 这样的特殊字母表并删除了O。我怎样才能保留Ö

$string='GÖTEBORG-SEASON-1';
echo $str=preg_replace('/[^A-Za-z-_]/', '', $string);

它输出GTEBORG-SEASON- (Ö is missing) 但我期待GÖTEBORG-SEASON-

谢谢。

【问题讨论】:

  • 你要替换的每个字符串都是这样吗?因为那时,您可以只使用 substr() 并且只删除最后一个字符。如果您只想删除数字,则会想到 preg_replace('/\d/', '', $string);。请更清楚您想要实现的目标。
  • 使用正则表达式'/[^A-Za-z_-]/'时是否也会出现这种情况?
  • 使用mb_ereg_replace 支持多字节。

标签: php regex


【解决方案1】:

我想我已经解决了。我需要使用这样的东西 preg_replace ('/[^\p{L}-_]/u','', $string);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-04
    • 2016-02-09
    • 1970-01-01
    • 2014-02-05
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多