Qokelate 发表于 2013-2-21 22:33:30

已解决 求一正则

本帖最后由 Qokelate 于 2013-2-21 23:18 编辑

如何用正则删除Au3文本中的所有函数声明部分?   就是   Func XXX( ........ 到 EndFunc 之间(含这两行)的所有行?




;asdf sa
#include-once
#include <a.au3>

Local $bbbbb


Func 删除1()
       
EndFunc   ;==>删除1

Local $zzzz

Func 删除2($b, $c, $aaa = 111)
       
EndFunc   ;==>删除2

Global $bb
删除后就是

;asdf sa
#include-once
#include <a.au3>

Local $bbbbb



Local $zzzz



Global $bb

*:空行可保留或不保留均可



解决办法 感谢大绯狼的提供

        $sText = StringRegExpReplace($sText, '(?im)^\s*Func .*?\([^\)]*\)[\S\s]*?^\s*EndFunc.*', '')

happytc 发表于 2013-2-21 22:48:56

下面的应该可以,但我没有试过,懒得搞个串或保存个文件,再读了。你试试
$sStr = StringRegExpReplace($sStr, '(?si)Func.+?EndFunc.*?(\r\n|\n|\r)', '')
页: [1]
查看完整版本: 已解决 求一正则