Regex 使用记事本+;中的正则表达式提取所需文本+;

Regex 使用记事本+;中的正则表达式提取所需文本+;,regex,parsing,notepad++,Regex,Parsing,Notepad++,我有10000个字符长的xml文本,我必须解析出它旁边的变量名和值 example of text: <? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-01-01T10:41:18- 05:00</xyzefg><**shAMount**>8000.00</afsfda;sfkj;alkfl;kaf> &

我有10000个字符长的xml文本,我必须解析出它旁边的变量名和值

 example of text:

 <? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-01-01T10:41:18- 
 05:00</xyzefg><**shAMount**>8000.00</afsfda;sfkj;alkfl;kaf>
 <? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18- 
 05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
我试图用记事本++编写一个宏来查找特定文本并重复所有记录,但“多次运行宏”不起作用。是否有任何正则表达式方法来清除所有内容并将值保留在我提到的变量名旁边?我可以对每个变量分别重复此步骤


谢谢你的帮助

< P>。当你考虑解析HTML/XML时,我总是倾向于记事本+ +来清理数据。你可能需要一些尝试,但是要给你一些可能有用的东西

现在,上面的内容基本上是基于获得所有

<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-01-01T10:41:18-05:00</xyzefg><**shAMount**>8000.00</afsfda;sfkj;alkfl;kaf>
…查找整行,如果替换为

\r<?
$1$2$3
…然后将正则表达式()中的三位放回。所以这个

<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-01-01T10:41:18-05:00</xyzefg><**shAMount**>8000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
可能不是您想要的100%,但从那里您可以进一步清理它,并说,找到(在扩展模式下)“shAMount”(不带引号)并替换为“\rshAMount”(不带引号)。很少有“查找”和“替换”循环,您可能更接近您的目标


但是,是的……如果您经常这样做,请查看Python和HTML解析器-更多内容需要学习,但功能非常强大。

试试这个,这是我所能做到的最好的


查找内容:
^.*.*(.*?\*.*>\*>|不要使用正则表达式解析HTML。必须链接以指出引用-HTML和正则表达式不是好朋友。使用解析器,它更简单、更快、更易于维护。注意:初始替换可以分离捕获的字符串,如果更有用的话,
$1$2$3
可以是
$1-|-$2-$3
(或其他)
^.*?(\d+-\d+-\d+T\d+:\d+:\d+-\d+:\d+).*(shAMount).*?(\d+\.\d+).*$
$1$2$3
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-01-01T10:41:18-05:00</xyzefg><**shAMount**>8000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
<? xml version="1.0" of encoding="UTF-8"?><abcdefghij><**ToDateTimestamp**>2019-02-01T10:41:18-05:00</xyzefg><**shAMount**>7000.00</afsfda;sfkj;alkfl;kaf>
2019-01-01T10:41:18-05:00shAMount8000.00
2019-02-01T10:41:18-05:00shAMount7000.00
2019-02-01T10:41:18-05:00shAMount7000.00
2019-02-01T10:41:18-05:00shAMount7000.00
2019-02-01T10:41:18-05:00shAMount7000.00
2019-02-01T10:41:18-05:00shAMount7000.00