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

[效率算法] 【已解决】AU3正则问题:emeditor多行替换的正则需要怎么转换过来在AU3使用?

  [复制链接]
发表于 2013-1-4 12:12:48 | 显示全部楼层 |阅读模式
本帖最后由 huangke 于 2013-1-4 15:06 编辑

我在emeditor这个文本编辑工具(类似SCITE)使用这个正则一直没有问题,但是在AU3老是不行,
表达式是: ^.*裤.*$

即是:含有“裤”字的这行都会被替换。
例如:我有一个文本:里面的内容就是一行行的关键词:

dsf
sdfg
fsdf
sdfg
sdfg
sdf
sfgfg
dfg
sf裤
s裤fg
ghfg
sd裤f


其中,包含有“裤”字的每行我都要去掉。得到的的结果是:

dsf
sdfg
fsdf
sdfg
sdfg
sdf
sfgfg
dfg
发表于 2013-1-4 12:27:27 | 显示全部楼层
完整的正则代码呢?你这个表达式有问题啊!
发表于 2013-1-4 12:33:04 | 显示全部楼层
回复 1# huangke
这个可以吗?
### 友情提示:本脚本由 Au3.REHelper 于 2013/01/04 12:31 自动生成,不保证其正确性,请自行测试 ###
Local $Str = _
                'djsl裤iejfaj' & @CRLF & _
                '大家佛王府井裤的' & @CRLF & _
                '裤子裤子'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExpReplace($str, '(?m)(裤)', '子', 4)
MsgBox(0, '替换结果', $Test)
 楼主| 发表于 2013-1-4 13:45:01 | 显示全部楼层
回复  huangke
这个可以吗?
xms77 发表于 2013-1-4 12:33



    哦哦,可能你理解错鸟。。。我的意思是说,我想去掉有“裤”字整行的所有文字,如果用这个正则“^.*裤.*$”      在emeditor是可行的,不过谢谢你的热心啊。
发表于 2013-1-4 14:20:46 | 显示全部楼层
回复 4# huangke

其实就是个多行匹配问题,估计是你使用的工具是默认多项的,AU3中加入(?m)就可以
 楼主| 发表于 2013-1-4 14:44:38 | 显示全部楼层
本帖最后由 huangke 于 2013-1-4 14:45 编辑
回复  huangke

其实就是个多行匹配问题,估计是你使用的工具是默认多项的,AU3中加入(?m)就可以
annybaby 发表于 2013-1-4 14:20




   Local $Str =  _
                'djsli裤ejf212aj' & @CRLF & _
                '大家佛王府井裤的555' & @CRLF & _
                '裤子裤子khlkl'& @CRLF & _
                                   '裤1jdfjkdfkkjkllk裤'& @CRLF & _
                                   'j2dfjkdfkkjkllk裤'& @CRLF & _
                                   '裤3jdfjkdfkkjkllk'& @CRLF & _
                                   '4jdfjkdfk裤kjkllk'& @CRLF & _
                                   '5j裤dfjkdfkkjkll裤k'& @CRLF & _
                                   '5jdfjkdfkkjkllk'
   MsgBox(0, '原字符串', $Str)

   Local $Test = StringRegExpReplace($str, '.+裤(.+)', '', 0)

   MsgBox(0, '替换结果', $Test)



其实我想要的效果就是这样,但是“裤3jdfjkdfkkjkllk”这个串貌似不行,PS:最后一行是我需要的数据。
发表于 2013-1-4 14:51:28 | 显示全部楼层
Local $Str =  _
         'djsli裤ejf212aj' & @CRLF & _
        '大家佛王府井裤的555' & @CRLF & _
        '裤子裤子khlkl'& @CRLF & _
        '裤1jdfjkdfkkjkllk裤'& @CRLF & _
   'j2dfjkdfkkjkllk裤'& @CRLF & _
   '裤3jdfjkdfkkjkllk'& @CRLF & _
   '4jdfjkdfk裤kjkllk'& @CRLF & _
   '5j裤dfjkdfkkjkll裤k'& @CRLF & _
   '5jdfjkdfkkjkllk'
   MsgBox(0, '原字符串', $Str)
   Local $Test = StringRegExpReplace($str, '.*裤.*(\r?\n?|$)', '', 0)
   MsgBox(0, '替换结果', $Test)
试下
 楼主| 发表于 2013-1-4 15:05:41 | 显示全部楼层
试下
kevinch 发表于 2013-1-4 14:51



    刚修改完内容,kevinch就搞掂了。。。谢谢啊!看来高手还是真的多啊。。。。+1
发表于 2013-1-4 15:09:50 | 显示全部楼层
本帖最后由 afan 于 2013-1-4 15:11 编辑
StringRegExpReplace($str, '.*裤.*\v*', '')
发表于 2013-1-4 16:07:13 | 显示全部楼层
本帖最后由 annybaby 于 2013-1-4 16:08 编辑

回复 6# huangke

你原来1楼的表达也可以啊,只是少了个多行匹配而已(及末尾可能没有空白符)
Local $Str = _
                'djsli裤ejf212aj' & @CRLF & _
                '大家佛王府井裤的555' & @CRLF & _
                '裤子裤子khlkl' & @CRLF & _
                '裤1jdfjkdfkkjkllk裤' & @CRLF & _
                'j2dfjkdfkkjkllk裤' & @CRLF & _
                '裤3jdfjkdfkkjkllk' & @CRLF & _
                '4jdfjkdfk裤kjkllk' & @CRLF & _
                '5j裤dfjkdfkkjkll裤k' & @CRLF & _
                '5jdfjkdfkkjkllk'
MsgBox(0, '原字符串', $Str)

Local $Test = StringRegExpReplace($Str, '(?m)^.*裤.*\v*', '', 0)

MsgBox(0, '替换结果', $Test)
 楼主| 发表于 2013-1-4 21:49:58 | 显示全部楼层
afan 发表于 2013-1-4 15:09



    惊动了A版大人了,A版神奇般的人物出现鸟。。。鼓掌!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 06:03 , Processed in 0.076982 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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