Lua 匹配 makefile 中模式的正则表达式
Lua regex to match pattern in makefile
我正在编写一个脚本来自动维护我的 makefile。我需要一个匹配以下行的 Lua 模式:
# objects {
objects = build/somefile1.o \
build/somefile2.o \
...
build/somefileN.o \
# } objects
我试过 %# objects %{[a-z%.%s%/%\]+%# %} objects
但它似乎不起作用。
我建议使用:
"\n(# objects %b{} objects)"
要使其适用于匹配位于字符串开头的情况,您需要在字符串输入前加上换行符。这里首先匹配一个换行符,然后是# objects
,然后是space,然后%b{}
匹配平衡嵌套花括号(如果有的话),然后匹配objects
。
当运行提取时,捕获的部分(在(...)
内)将返回string.gmatch
。
s = [[ YOUR_TEXT_HERE ]]
for m in string.gmatch("\n" .. s, "\n(# objects %b{} objects)") do
print(m)
end
我正在编写一个脚本来自动维护我的 makefile。我需要一个匹配以下行的 Lua 模式:
# objects {
objects = build/somefile1.o \
build/somefile2.o \
...
build/somefileN.o \
# } objects
我试过 %# objects %{[a-z%.%s%/%\]+%# %} objects
但它似乎不起作用。
我建议使用:
"\n(# objects %b{} objects)"
要使其适用于匹配位于字符串开头的情况,您需要在字符串输入前加上换行符。这里首先匹配一个换行符,然后是# objects
,然后是space,然后%b{}
匹配平衡嵌套花括号(如果有的话),然后匹配objects
。
当运行提取时,捕获的部分(在(...)
内)将返回string.gmatch
。
s = [[ YOUR_TEXT_HERE ]]
for m in string.gmatch("\n" .. s, "\n(# objects %b{} objects)") do
print(m)
end