gpt4 book ai didi

regex - Lua:模式匹配多字符?重复运算符

转载 作者:行者123 更新时间:2023-12-04 19:08:47 26 4
gpt4 key购买 nike

根据 the docs ,所有 Lua 重复操作符只对单个字符起作用,所以你可以匹配

string.match('123', '1?(%d+)') -- returns 23

但不能匹配多字符串:
string.match('123', '(12)?(%d+)') -- want this to return 3

文档说通过“多种模式和自定义逻辑”是可能的,但我不知道这意味着什么。有人可以提供一种与上述模式匹配的方法吗?基本上, 12应该可选地匹配全有或全无,并返回数字字符串的其余部分。

最佳答案

我认为这里的“多种模式和自定义逻辑”意味着这样的用法:

string.match('123', '12(%d+)') or string.match('123', '(%d+)')

or是短路,如果第一个模式匹配,它将是表达式的值,否则第二个模式将尝试匹配。这正是正则表达式 (12)?(%d+)方法。

还要注意还有更强大的 LPeg或其他 Lua 正则表达式库。

关于regex - Lua:模式匹配多字符?重复运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17880946/

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