我尝试在notepad ++中使用正则表达式捕获和替换字符串,但结果并不像预期的那样.数据库的格式如下:
(602, '0602', '[{"id":"9","value":""},{"id":"1","value":"1"}]'),
(1644, '0164', '[{"id":"9","value":""},{"id":"1","value":"3"}]'),
(1311, '0131', '[{"id":"9","value":""},{"id":"1","value":"100"}]'),
(1321, '0132', '[{"id":"9","value":""},{"id":"1","value":"150"}]')
Run Code Online (Sandbox Code Playgroud)
任务是捕获并放置第2列(值0602,0164,0131,0131)并将其作为id 9的值插入.例如,最终结果必须如下所示:
(602, '0602', '[{"id":"9","value":"0602"},{"id":"1","value":"1"}]'),
(1644, '0164', '[{"id":"9","value":"0164"},{"id":"1","value":"3"}]'),
(1311, '0131', '[{"id":"9","value":"0131"},{"id":"1","value":"100"}]'),
(1321, '0132', '[{"id":"9","value":"0132"},{"id":"1","value":"150"}]')
Run Code Online (Sandbox Code Playgroud)
我在Notepad ++中试用这个正则表达式 - 搜索:
(, '.*)("id":"9","value":"")
Run Code Online (Sandbox Code Playgroud)
更换:
($1)("id":"9","value":"$1")
Run Code Online (Sandbox Code Playgroud)
结果很接近,但不是我需要的.如果你知道正确的答案,请帮助我.先感谢您.
您可以使用下面的正则表达式捕获字符串的部分,并用第二列值替换它
^(\(\d+,\s*.*?(\d+).*?value":).*?([,}])
Run Code Online (Sandbox Code Playgroud)
并\1"\2"\3
用作替换部件.
说明:
^
:开始行\(
:匹配(
文字\d+,\s*
:匹配数字/秒后跟逗号和任意数量的空格.*?
:匹配任何内容以满足以下条件(\d+)
:匹配一个或多个数字并将其添加到捕获的组中.*?value":
:匹配到 value"
([,}])
:匹配,
或者}
捕获的组\1
将包含字符串until value":
,"\2"
将在第二列中\3
包含双引号中的数字,并将包含最后一个,
或}
.
归档时间: |
|
查看次数: |
3690 次 |
最近记录: |