gpt4 book ai didi

string - Lua:删除最后一个{..}

转载 作者:行者123 更新时间:2023-12-02 09:56:51 28 4
gpt4 key购买 nike

在像 {any {possible}characters}{anything} 这样的字符串中,我想删除最后 {...} 出现的地方,其本身不能包含另一个 {...} 组合。搜索最后一个 { 然后使用 string.sub 没有问题。但是,是否有一个带有模式匹配的简短命令可以删除最后一个命令,例如:

str = "{any {possible} characters}{anything}"
print(str:gmatch(...))

应该写{任何{可能}字符}

最佳答案

这里有两种可能的解决方案。

末尾没有嵌套大括号:

string.gsub('{any {possible} characters}{anything}', '{[^{}]*}$', '')

这里,{[^{}]*}$ 匹配 {,然后是除 { 之外的任何 0+ 个字符>},然后是必须位于字符串末尾的 } 字符 ($)。

如果末尾有嵌套大括号,请使用以下内容:

string.gsub('{anything}{any {possible} characters}', '%b{}$', '')

这里,%b{}$ 匹配内部有任意数量嵌套大括号的 {...} 子字符串,然后断言字符串末尾的位置与$

参见this Lua demo

请注意,您可以添加 %s* 来匹配任何 0+ 空格(例如,如果存在尾随空格,则很有用)- '%b{}%s*$' .

关于string - Lua:删除最后一个{..},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52659825/

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