正则表达式 - 查找字符串中的最后一次出现(\ s空格字符)

时间:2014-08-20 10:21:16

标签: php regex

我希望匹配并用正则表达式替换字符串(电话号码)中的某些字符。

例如:

(525) 525 52 25

替换为:

525 525 5225

替换字符:

  

()“”//< - 没有“字符,最后的空格在52 25

之间

我该怎么办?

我试过了:

/[\(\)\s]/g

匹配()和所有空格字符。

2 个答案:

答案 0 :(得分:2)

您可以尝试使用以下代码删除()符号以及最后两位数之前的空格,

<?php
$mystring = "(525) 525 52 25";
echo preg_replace('~[()]| (?=\d{2}$)~', '', $mystring);
?>

输出:

525 525 5225

<?php
$mystring = "(525) 525 52 25";
echo preg_replace('~[()]| (?=\S*$)~', '', $mystring);
?>

DEMO

<强>解释

  • [()]匹配()符号。
  • |逻辑OR运算符通常用于组合两个正则表达式。
  • <space>(?=\S*$)匹配空格(即最后一个空格),后跟零个或多个非空格字符和行尾。
  • 最后所有匹配的字符都替换为空字符串。

答案 1 :(得分:0)

尝试:

echo preg_replace('/[()]|\s(?=\S+$)/', '', '(525) 525 52 25');