huangke 发表于 2013-1-4 12:12:48

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

本帖最后由 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

xms77 发表于 2013-1-4 12:27:27

完整的正则代码呢?你这个表达式有问题啊!

xms77 发表于 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)

huangke 发表于 2013-1-4 13:45:01

回复huangke
这个可以吗?
xms77 发表于 2013-1-4 12:33 http://www.autoitx.com/images/common/back.gif


    哦哦,可能你理解错鸟。。。我的意思是说,我想去掉有“裤”字整行的所有文字,如果用这个正则“^.*裤.*$”      在emeditor是可行的,不过谢谢你的热心啊。

annybaby 发表于 2013-1-4 14:20:46

回复 4# huangke

其实就是个多行匹配问题,估计是你使用的工具是默认多项的,AU3中加入(?m)就可以

huangke 发表于 2013-1-4 14:44:38

本帖最后由 huangke 于 2013-1-4 14:45 编辑

回复huangke

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



   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:最后一行是我需要的数据。

kevinch 发表于 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)试下

huangke 发表于 2013-1-4 15:05:41

试下
kevinch 发表于 2013-1-4 14:51 http://www.autoitx.com/images/common/back.gif


    刚修改完内容,kevinch就搞掂了。。。谢谢啊!看来高手还是真的多啊。。。。+1

afan 发表于 2013-1-4 15:09:50

本帖最后由 afan 于 2013-1-4 15:11 编辑

StringRegExpReplace($str, '.*裤.*\v*', '')

annybaby 发表于 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)

huangke 发表于 2013-1-4 21:49:58


afan 发表于 2013-1-4 15:09 http://www.autoitx.com/images/common/back.gif


    惊动了A版大人了,A版神奇般的人物出现鸟。。。鼓掌!!!{:face (300):}
页: [1]
查看完整版本: 【已解决】AU3正则问题:emeditor多行替换的正则需要怎么转换过来在AU3使用?