[英]Find/Replace regex to rearrange text in Notepad++
我有一些我想重新排列的数据(它们都在同一行)我尝试了多种方法,但我无法让它工作。
下面是一个文本示例:
DATA1="8DE" DATA2="322" DATA3="20" DATA4="19.99" DATA5="0.01"
DATA1="FE4" DATA2="222" DATA4="400" DATA3="400" DATA5="0.00"
DATA1="CE3" DATA2="444" DATA4="60" DATA5="0.00" DATA3="60"
DATA1="MME" DATA3="20" DATA4="20" DATA5="0.00"
DATA2="667" DATA4="30" DATA3="30" DATA5="0.00" DATA1="MH4"
这应该是 output:
8DE 322 20 19.99 0.01
FE4 222 400 400 0.00
CE3 444 60 60 0.00
MME 20 20 0.00
MH4 667 30 30 0.00
我尝试了以下但无济于事:
查找: DATA1=\"(.*?)\"|DATA2=\"(.*?)\"|DATA3=\"(.*?)\"|DATA4=\"(.*?)\"|DATA5=\"(.*?)\"
替换: \1 \2 \3 \4 \5
和
查找: DATA1=\"(?<d1>.*?)\"|DATA2=\"(?<d2>.*?)\"|DATA3=\"(?<d3>.*?)\"|DATA4=\"(?<d4>.*?)\"|DATA5=\"(?<d5>.*?)\"
替换: $+{d1} $+{d2} $+{d3} $+{d4} $+{d5}
如果有人可以帮助或指导我找到正确的答案,我会很高兴(并且很抱歉任何误解,因为英语不是我的第一语言)
^(?=.*\bDATA1="([^"]+)"\h*)?(?=.*\bDATA2="([^"]+)"\h*)?(?=.*\bDATA3="([^"]+)"\h*)?(?=.*\bDATA4="([^"]+)"\h*)?(?=.*\bDATA5="([^"]+)"\h*)?.*
此正则表达式通过使用可选的前瞻来定位DATAx
(其中x
是数字)并将"
内的值捕获到捕获组中,然后匹配整行(以替换它)。
$1\t\t$2\t\t$3\t\t$4\t\t$5
此替换仅引用捕获组并在它们之间添加制表符,同时按DATA [1,2,3,4,5]
的顺序重新排序它们。
8DE 322 20 19.99 0.01
FE4 222 400 400 0.00
CE3 444 60 60 0.00
MME 20 20 0.00
MH4 667 30 30 0.00
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.