php - 如何用正则表达式模式替换正则表达式模式?

标签 php regex csv match

我为无法弄清楚这一点而感到非常愚蠢,但我就是想不通。我需要用模式替换正则表达式字符串,我找到了两个这样做的例子,但老实说,它们让我比以往任何时候都更加困惑。

这是我目前的尝试:

$string = '26 14:46:54",,"2011-08-26 14:47:02",8,0,"BUSY","DOCUMENTATION","1314370014.18","","","61399130249","7466455647","from-internal","""Oh Snap"" <61399130249>","SIP/1037-00000014","SIP/CL-00000015","Dial","SIP/CL/61436523277,45","2011-08-26 14:47:06","2011-08-26 14:47:15","2011-08-26 ';
$pattern = '["SIP/CL/\d*?,\d*?",]';
$replacement = '"SIP/CL/\1|\2",';
$string = preg_replace($pattern, $replacement, $string);
print($string);

但这只是将 \1\2 替换为空白。所以很明显我没有理解整个概念。

最后我想要的是改变:

this: "SIP/CL/61436523277,45"
to: "SIP/CL/61436523277|45"

格式不正确的 CSV 中的逗号会影响我的一些其他脚本。

最佳答案

你缺少大括号,模式应该是这样的:

$pattern = '["SIP/CL/(\d*),(\d*)",]';

关于php - 如何用正则表达式模式替换正则表达式模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8903547/

相关文章:

javascript - 在Java中发送带有BOM的UTF-8编码的CSV文件

javascript - 带有 csv/txt 输入文件的动态饼图

javascript - 正则表达式匹配字符串模式和数字(url格式)

python - 解析单个 CSV 字符串?

php - Php 中的登录脚本

PHP如何使用 key 编码/解码文本?

Javascript正则表达式调整

c# - 如何使用正则表达式在字符串末尾允许两个字母?

php - 使用 Masonry、jQuery 和 PHP 制作专辑封面画廊

php - Laravel groupby min/max 过滤分组结果