Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式-在字符串(\s空格字符)中查找最后一次出现的值_Php_Regex - Fatal编程技术网

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

Php 正则表达式-在字符串(\s空格字符)中查找最后一次出现的值,php,regex,Php,Regex,我想用正则表达式匹配并替换字符串(电话号码)中的一些字符 例如: (525) 525 52 25 替换为: 525 525 5225 替换字符: ()“”/您可以尝试下面的代码,删除(或)符号和最后两位之前的空格 <?php $mystring = "(525) 525 52 25"; echo preg_replace('~[()]| (?=\d{2}$)~', '', $mystring); ?> 或 <?php $mystring = "(525) 525 52 2

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

例如:

(525) 525 52 25
替换为:

525 525 5225
替换字符:


()“”/您可以尝试下面的代码,删除
符号和最后两位之前的空格

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

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

说明:

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

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

@georg php(你可以在标签中看到)是的,但是你的RE是javascript。它在这里不起作用(可能与php一起工作,我会尝试)regexr.com是专门为javascript设计的。好的,我正在用php尝试,请稍等:)@R.CanserYanbakan in javascript
“(525)52552 25”。替换(/[())|(?=\S*$)/g,”谢谢:)做得很好!顺便说一下,如果你写下解释,那就太好了!
<?php
$mystring = "(525) 525 52 25";
echo preg_replace('~[()]| (?=\S*$)~', '', $mystring);
?>
echo preg_replace('/[()]|\s(?=\S+$)/', '', '(525) 525 52 25');