如何写这样的正则表达式

时间:2013-01-06 00:41:54

标签: regex pseudocode

需要正则表达式来跟踪数据:

#file "scripts\generate.c";;
void Generate()

adsasd
asdasdas
asdasd
#file "a.c";;
void asdad()
asdasd
asdasd

将返回文件和代码,如下所示:

Array(
    [0] => scripts\generate.c
    [1] => 
            void Generate()

            adsasd
            asdasdas
            asdasd
)

...和#file "a.c";;

相同

1 个答案:

答案 0 :(得分:1)

你的第一次尝试就在附近。只需将((?!#file .*).)*更改为((?:(?!#file).)*),同时添加修饰符g即可获取所有匹配项。

看起来应该是这样的:/#file "([^"]*)";;((?:(?!#file).)*)/gims

在此测试:http://www.regex101.com/r/cC5tK5