找回密码
 加入
搜索
查看: 1740|回复: 1

[效率算法] 已解决 求一正则

[复制链接]
发表于 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.*', '')
发表于 2013-2-21 22:48:56 | 显示全部楼层
下面的应该可以,但我没有试过,懒得搞个串或保存个文件,再读了。你试试
$sStr = StringRegExpReplace($sStr, '(?si)Func.+?EndFunc.*?(\r\n|\n|\r)', '')

评分

参与人数 1金钱 +50 收起 理由
Qokelate + 50 谢谢帮忙 在群找到办法了

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-13 00:38 , Processed in 0.076695 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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