我是正则表达式的新手,所以我需要你的帮助.我需要在字符串中替换8000'"ts";s:4:"8000";s:2:"tr";s:3:"200"'
<?php
$txt = '"ts";s:4:"8000";s:2:"tr";s:3:"200"';
$pattern = '#\"ts\"\;[a-z]{1}\:[0-9]{1}\:\"([0-9]*)#';
$replacement = '7000';
$txt = preg_replace($pattern,$replacement,$txt);
print($txt);
?>
Run Code Online (Sandbox Code Playgroud)
这段代码输出7000";s:2:"tr";s:3:"200"的不是我需要的.我在这做错了什么?谢谢!
你用"7000" 替换整个模式字符串,这是错误的.使用分组:
$txt = '"ts";s:4:"8000";s:2:"tr";s:3:"200"';
$pattern = '#(\"ts\"\;[a-z]{1}\:[0-9]{1}\:\")([0-9]*)(\".*)#';
$replacement = '${1}7000${3}';
$txt = preg_replace($pattern,$replacement,$txt);
print($txt);
Run Code Online (Sandbox Code Playgroud)
=>"ts"; s:4:"7000"; s:2:"tr"; s:3:"200"
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |