Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 查找/替换正则表达式以重新排列记事本中的文本++;_Regex_Notepad++ - Fatal编程技术网

Regex 查找/替换正则表达式以重新排列记事本中的文本++;

Regex 查找/替换正则表达式以重新排列记事本中的文本++;,regex,notepad++,Regex,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="2

我有一些我想重新整理的数据(都在同一条线上),我尝试了多种方法,但都没能奏效

以下是文本示例:

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"
这应该是输出:

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=\'(?*?)\“;DATA2=\”(?*?)\“;DATA3=\”(?*?)\“;DATA4=\”(?*?)\“;DATA5=\”(?*??)”

替换:
$+{d1}$+{d2}$+{d3}$+{d4}$+{d5}

如果有人能帮我或指导我找到正确的答案,我会很高兴(对于任何误解,我深表歉意,因为英语不是我的第一语言)

regex 该正则表达式使用可选的lookaheads来定位
DATAx
(其中
x
是数字),并将
中的值捕获到一个捕获组中,然后匹配整行(以替换它)

替代品 此替换仅引用捕获组并在它们之间添加制表符,同时按照
数据[1,2,3,4,5]
的顺序对它们重新排序

结果
看到它工作了吗

为什么
MME
MH4
行被翻转?数据遵循相同的模式,但有时排列方式不同,这就是为什么我试图通过REGEXCan重新排列数据,结果是MME,然后是MH4?你目前的方式不可能仅使用regex。哦!我现在明白你的意思了,我编辑了文本,使行顺序正确。是的,您是对的,行保持其顺序。1..2..3..因此…正则表达式中的竖条(
|
)表示交替,但不是您希望的方式。请参见@ctwheels在回答中关于“可选lookaheads”的词语。
^(?=.*\bDATA1="([^"]+)"\h*)?(?=.*\bDATA2="([^"]+)"\h*)?(?=.*\bDATA3="([^"]+)"\h*)?(?=.*\bDATA4="([^"]+)"\h*)?(?=.*\bDATA5="([^"]+)"\h*)?.*
$1\t\t$2\t\t$3\t\t$4\t\t$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