正则表达式 – 如何使用记事本在标签之间查找和替换文本
我正在使用
XML导出来删除旧的通缉数据并将其替换为相关标签.我一直在环顾四周,但一直无法找到我正在寻找的东西,所以请原谅我,如果这看起来多余的话.
我希望替换我的< wp:postmeta>中的所有数据和< / wp:postmeta>标签.但是因为它们跨越多行.*?不像过去那样工作.我相信这意味着它只能跨越一条线.以下是代码示例: <item> //Start of find <wp:postmeta> <wp:meta_key><![CDATA[_edit_last]]></wp:meta_key> <wp:meta_value><![CDATA[3]]></wp:meta_value> </wp:postmeta> <wp:postmeta> <wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key> <wp:meta_value><![CDATA[51833]]></wp:meta_value> </wp:postmeta> <wp:postmeta> <wp:meta_key><![CDATA[snapEdIT]]></wp:meta_key> <wp:meta_value><![CDATA[1]]></wp:meta_value> </wp:postmeta> // End of find using Notepad++ </item> <item> //Start of find <wp:postmeta> <wp:meta_key><![CDATA[_edit_last]]></wp:meta_key> <wp:meta_value><![CDATA[3]]></wp:meta_value> </wp:postmeta> <wp:postmeta> <wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key> <wp:meta_value><![CDATA[51425]]></wp:meta_value> </wp:postmeta> // End of find using Notepad++ </item> 我特意想找到并替换第一个< wp:postmeta>中的所有内容.标记到最后一次结束< / wp:postmeta>在其相应的打开和关闭项目标签内.有数以百计这些,我宁愿不逐一去.如果可能,请告诉我.如果不可能,我想知道如何从一个< wp:postmeta>到它的结束< / wp:postmeta>我可以用它. 提前致谢. 解决方法
在记事本中,强制一个.要匹配换行符(多行文本块),您需要启用.匹配“查找和替换”对话框中的换行选项.
请注意,使用正则表达式更改(X)HTML代码非常困难并且容易出错. 所以,如果你知道你在做什么,你可以启用我上面提到的那个选项并使用正则表达式< wp:postmeta>.*?< / wp:postmeta>并用你需要的任何东西替换.见regex demo. 如果存在没有结束< / wp:postmeta>的大文本块,则可能会遇到超时问题.然后,您将需要展开正则表达式: <wp:postmeta>[^<]*(?:<(?!/wp:postmeta>)[^<]*)*</wp:postmeta> 请参阅正则表达式演示.这个正则表达式将匹配换行符,无论如何.匹配换行选项. 如果需要匹配相邻的wp:postmeta标记,可以在模式周围使用非捕获组并为其设置量词: (?:s*<wp:postmeta>[^<]*(?:<(?!/wp:postmeta>)[^<]*)*</wp:postmeta>)+ 见one more demo 截图: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |