正则表达式用于中间位置替换



我想替换以下字符串

comments={ts=2010-02-09T04:05:20.777+0000, comment_id=529590|2886|LOL|Baoping Wu|529360}

comments={ts=2010-02-09T04:05:20.777+0000, comment_id=529590, user_id = 2886, comment='LOL', user= 'Baoping Wu', post_commented=529360}

我的方法是comment_id=。([0-9])* 表示第一次替换对我来说,其他替代品很难。谁能帮我?

您可以通过一个搜索和替换操作执行所有这些转换。使用以下具有捕获组的正则表达式:

(comment_id=)(d+)|(d+)|([^|]+)|([^|]+)|(d+)

替换为$1$2, user_id = $3, comment='$4', user= '$5', post_commented=$6

查看正则表达式演示

  • (comment_id=) - 组 1,文字字符序列
  • (d+) - 第 2 组:一个或多个数字
  • | - 文字管道符号
  • (d+) - 组 3 匹配另一部分数字
  • | - 再次,一根管道
  • ([^|]+) - 第 4 组捕获除|以外的一个或多个符号
  • | - 再次,一根管道
  • ([^|]+) - Group 5 capturing one or more symbols other than |'
  • | - 另一根管道
  • (d+) - 组 6 匹配另一部分数字

在替换字符串中,$n是对捕获组的反向引用。

试试这个:

comment_id=.*?(?=,)

最新更新