【问题标题】:Lua regex to match pattern in makefileLua正则表达式匹配makefile中的模式
【发布时间】:2017-05-14 12:22:36
【问题描述】:

我正在编写一个脚本来自动管理我的 makefile。我需要一个与以下行匹配的 Lua 模式:

# objects {
objects = build/somefile1.o \
          build/somefile2.o \
          ...
          build/somefileN.o \

# } objects

我尝试使用%# objects %{[a-z%.%s%/%\\]+%# %} objects,但它似乎不起作用。

【问题讨论】:

  • # objects {.-\n# } objects

标签: makefile lua pattern-matching lua-patterns


【解决方案1】:

我建议使用:

"\n(# objects %b{} objects)"

要使其适用于匹配位于字符串开头的情况,您需要在字符串输入前添加换行符。这里首先匹配换行符,然后是# objects,然后是空格,然后%b{} 匹配平衡嵌套的花括号(如果有),然后匹配objects

运行提取时,捕获的部分(在(...) 内)将返回string.gmatch

Lua online demo

s = [[ YOUR_TEXT_HERE ]]
for m in string.gmatch("\n" .. s, "\n(# objects %b{} objects)") do
   print(m)
 end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多