我想替换以下字符串
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=.*?(?=,)
例