找回密码
 加入
搜索
查看: 3052|回复: 10

[AU3基础] [已解决]正则:如何实现替换?

  [复制链接]
发表于 2011-1-11 10:25:21 | 显示全部楼层 |阅读模式
本帖最后由 newuser 于 2011-1-11 16:12 编辑

如何实现将foo(10,7,2)替换成foo(7,2,10)  ?
现在只是能匹配出 10      7       2,用下面的:
foo\(([^,]*),([^,]*),([^)]*)\),但如何实现替换他们呢?

评分

参与人数 1金钱 +10 收起 理由
pusofalse + 10 感谢主动给标题加注“已解决”字样。

查看全部评分

发表于 2011-1-11 10:34:24 | 显示全部楼层
回复 1# newuser
我的正则不怎样,效率方面还是等专业人士出场吧.

本帖子中包含更多资源

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

×
发表于 2011-1-11 10:43:17 | 显示全部楼层
直接用正则来实现替换不容易,不过要实现的目标却不难
$a=StringRegExp("foo(10,7,2)",'foo\(([^,]*),([^,]*),([^)]*)\)',3)
$b="foo("&$a[1]&","&$a[2]&","&$a[0]&")"
发表于 2011-1-11 10:48:36 | 显示全部楼层
其实楼主问的是替换
就是2楼的用法 $1 $2 $3分别对应第1 2 3 个捕获组 捕获到的内容
 楼主| 发表于 2011-1-11 15:24:05 | 显示全部楼层
本帖最后由 newuser 于 2011-1-11 15:35 编辑

回复 2# republican

在au3.rehelper中如何实现呢?

在scite中:
#include <array.au3>
Local  $Str="foo(10,7,2)"
Local  $Result=StringRegExpReplace($Str,"foo\(\([^,]*\),\([^,]*\),\([^)]*\)\)","foo($2,$3,$1")
MsgBox(0,"",$Result)
发表于 2011-1-11 15:54:45 | 显示全部楼层
回复 5# newuser

你不是已经做出来了麽?

本帖子中包含更多资源

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

×
 楼主| 发表于 2011-1-11 16:05:26 | 显示全部楼层
回复 6# republican

本帖子中包含更多资源

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

×
发表于 2011-1-11 16:08:10 | 显示全部楼层
回复 7# newuser


    状态栏不是提示了吗:成功执行(无匹配),没有匹配当然不会替换~
 楼主| 发表于 2011-1-11 16:20:22 | 显示全部楼层
回复 8# afan

afan别生气,刚注意到!
发表于 2011-1-11 16:22:40 | 显示全部楼层
回复 9# newuser

本帖子中包含更多资源

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

×
发表于 2011-1-11 16:30:39 | 显示全部楼层
本帖最后由 republican 于 2011-1-11 16:33 编辑

回复 7# newuser

....我自己也没看到....

谢谢afan,又明白了一些东西了.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-2 18:21 , Processed in 0.080209 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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