【问题标题】:PHP - Remove all punctuation from the start and end of the stringPHP - 从字符串的开头和结尾删除所有标点符号
【发布时间】:2021-02-18 00:05:32
【问题描述】:

我想剪掉所有的标点符号,只在字符串的开头和结尾留下字母或数字。应保留字母和数字之间的任何标点符号。

这是我从这里尝试过的PHP preg_replace: remove punctuation from beginning and end of string

$str = '£££2343423 34234238&   ';
    $new = preg_replace('/^\PL+|\PL\z/', '', $str);
    echo $new;

请问有什么建议吗?

【问题讨论】:

  • $new = preg_replace('/^[^\p{L}0-9]+|[^\p{L}0-9]+\z/', '', $str);
  • 您还需要在您的正则表达式中添加u 标志。

标签: php regex


【解决方案1】:

你可以使用

$new = preg_replace('/^[^\p{L}0-9]+|[^\p{L}0-9]+\z/u', '', $str);

正则表达式匹配

  • ^[^\p{L}0-9]+ - 字符串开头除 Unicode 字母和 ASCII 数字之外的任何一个或多个字符
  • | - 或
  • [^\p{L}0-9]+\z - 除 Unicode 字母和字符串末尾的 ASCII 数字之外的任何一个或多个字符。

查看PHP demo onlineregex demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    相关资源
    最近更新 更多