找回密码
 加入
搜索
查看: 1659|回复: 2

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

[复制链接]
发表于 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>



文件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 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)
 楼主| 发表于 2017-3-8 08:44:22 | 显示全部楼层
太感谢了,谢谢楼上高手
虽然看不懂,但是很好用
谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-22 06:26 , Processed in 0.074312 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表