hnfeng 发表于 2017-3-7 13:50:53

[已解决]请教一个正则替换的问题

本帖最后由 hnfeng 于 2017-3-8 13:15 编辑

请高手帮忙给个正则表达式吧,先谢谢了

需求是:一个CILX文件(可能XML的格式吧),里面有很多 如图中红色方框中的字符段(以 <ProductKey> 开始,以 </ProductKey> 结束)。
其中类似 <KeyValue>W8Y4G-9NJFW-H9TPT-BRG3H-G6MY6</KeyValue> 的中间部分是 Key。
下面的 <UserRemarks /> 或是 <UserRemarks>一些字符</UserRemarks> 是需要被替换为 <UserRemarks>指定字符</UserRemarks> 的。

就是查找指定 Key,
把它的 <UserRemarks /> 替换为 <UserRemarks>ok_20170307</UserRemarks>或是
把它的 <UserRemarks>abcd_123</UserRemarks> 替换为 <UserRemarks>ok_20170307</UserRemarks>



文件:

Alam 发表于 2017-3-7 18:38:30

看着数据多,似乎复杂,实际上,应该还算简单吧.Local $txt = ClipGet()
ConsoleWrite($txt&@CRLF)
Local $sMatch = 'W8Y4G-9NJFW-H9TPT-BRG3H-G6MY6'
Local $sRep = '<UserRemarks>ok_20170307</UserRemarks>'
$sMatch = StringReplace($sMatch, '-', '\-') ;转义 -

$txt = StringRegExpReplace($txt, '(?s)(.*' & $sMatch & '.+?)<UserRemarks\V+(.+)', '\1' & $sRep & '\2')
ConsoleWrite($txt&@CRLF)

hnfeng 发表于 2017-3-8 08:44:22

太感谢了,谢谢楼上高手
虽然看不懂,但是很好用
谢谢
{:face (88):}
页: [1]
查看完整版本: [已解决]请教一个正则替换的问题