gpt4 book ai didi

lua - Lua模式中的捕获组匹配文字数字字符而不是捕获组

转载 作者:行者123 更新时间:2023-12-04 14:31:04 27 4
gpt4 key购买 nike

我想提取包含 key="VALUE" 的行的 VALUE,我正在尝试使用一个简单的 Lua 模式来解决这个问题。

它适用于那些在 VALUE 中包含文字 1 的行。模式解析器似乎将我的捕获组混淆为转义序列。

> return  string.find('... key = "PHONE2" ...', 'key%s*=%s*(["\'])([^%1]-)%1')
5 18 " PHONE2
> return string.find('... key = "PHONE1" ...', 'key%s*=%s*(["\'])([^%1]-)%1')
nil
>

最佳答案

您根本不需要使用 [^%1]。只需使用 .-,因为根据定义,它匹配尽可能小的字符串。

此外,您可以使用多行字符串语法,而不必转义模式中的引号:

> s=[[... key = "PHONE1" ...]]
> return s:find [[key%s*=%s*(["'])(.-)%1]]
5 18 " PHONE1

模式 [^%1] 实际上意味着,不要单独搜索字符 %1

关于lua - Lua模式中的捕获组匹配文字数字字符而不是捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39264841/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com