php - 简单的正则表达式替换

标签 php regex

我是正则表达式新手,所以我需要你的帮助。 我需要替换字符串中的 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);
?>

此代码输出 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);

=> "ts";s:4:"7000";s:2:"tr";s:3:"200"

关于php - 简单的正则表达式替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7945450/

相关文章:

PHP 递归目录迭代器 - 忽略某些文件。

regex - 如何使用 FluentValidation 创建强密码?

正则表达式匹配特定的数字格式

regex - 设置字符串之间的匹配数字

javascript - 自动缩放/中心谷歌地图 api?

php - 连接失败: Host 'xx.xx.xx.xx' is not allowed to connect to this MySQL server - AJAX and AWS

php - 如何在由 while 循环组成的表格内创建一个表单

javascript - 用于验证十进制数字的正则表达式

javascript - 为什么我在 Gitlab CI 中出现 TypeError,但在运行 jest 时在我的机器上却没有?

PHP 似乎将 null 定义为自身。这是如何运作的?