I have certain data that I want to rearrange (it's all on the same line) I have tried multiple approaches but I can't get it to work.
Here is an example of the text:
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"
This should be the 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
I have tried the following but to no avail:
FIND: DATA1=\"(.*?)\"|DATA2=\"(.*?)\"|DATA3=\"(.*?)\"|DATA4=\"(.*?)\"|DATA5=\"(.*?)\"
REPLACE: \1 \2 \3 \4 \5
and
FIND: DATA1=\"(?<d1>.*?)\"|DATA2=\"(?<d2>.*?)\"|DATA3=\"(?<d3>.*?)\"|DATA4=\"(?<d4>.*?)\"|DATA5=\"(?<d5>.*?)\"
REPLACE: $+{d1} $+{d2} $+{d3} $+{d4} $+{d5}
I would be happy if someone can help or direct me to the right answer (and sorry for any misunderstanding as english is not my first languaje)
^(?=.*\bDATA1="([^"]+)"\h*)?(?=.*\bDATA2="([^"]+)"\h*)?(?=.*\bDATA3="([^"]+)"\h*)?(?=.*\bDATA4="([^"]+)"\h*)?(?=.*\bDATA5="([^"]+)"\h*)?.*
This regex works by using optional lookaheads to locate DATAx
(where x
is the number) and capturing the value inside the "
into a capture group, then matching the whole line (in order to replace it).
$1\t\t$2\t\t$3\t\t$4\t\t$5
This replacement just references the capture groups and adds tab characters between them while reordering them in the order of 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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.