Regex 用修改过的字符串替换字符串

Regex 用修改过的字符串替换字符串,regex,Regex,我有一个1000行的文件 "20140611","20:19","C","IT","IT","HDR","HDPDIT","675605","000000135.97"," .......... 我正在尝试替换与此模式匹配的所有字符串: 然后引用6个数字,然后再加上结束语(即“675605”和“675605@”) 使用“编辑+正则表达式搜索和替换”,搜索字符串为: \"[0-9][0-9][0-9][0-9][0-9][0-9]\" 这将找到我需要的所有事件 但是,我无法构造正确的repla

我有一个1000行的文件

"20140611","20:19","C","IT","IT","HDR","HDPDIT","675605","000000135.97"," ..........
我正在尝试替换与此模式匹配的所有字符串: 然后引用6个数字,然后再加上结束语(即“675605”和“675605@”)

使用“编辑+正则表达式搜索和替换”,搜索字符串为:

\"[0-9][0-9][0-9][0-9][0-9][0-9]\"
这将找到我需要的所有事件

但是,我无法构造正确的replace with reg ex,以将匹配项替换为自身后跟@符号,例如“675605@

使用sed,您可以:

sed -r 's|"([0-9]{6})"|"\1@"|g' file
添加
-i
以内联修改它

因此,我建议的正则表达式替换形式是:

"([0-9]{6})" - "\1@"
引述:

\"([0-9]{6})\" - \"\\1@\"
正则表达式:

替换字符串:

"\1@


替换字符串将是
“\1”
,如果您想
“675605@”
您需要使用捕获组。我不知道您是否可以在Edit Plus中使用它们,但我认为它应该可以工作:

查找内容:
\”(\d{6})\“
替换为:
\“\1@\”


其中
\1
是括号中的数字。

使用以下命令在vim或vi编辑器中打开文件:

vi“文件名” 然后使用此命令将“675605”图案替换为“675605@” :%s/675605/675605@/g 然后 esc:wq 现在打开文件,它将所有“675605”模式替换为“675605@”

"\1@