【发布时间】:2019-05-09 21:40:52
【问题描述】:
在特殊字符上将字符串分成两部分时遇到问题。
例如:
12345#data
或
1234567#data
我在第一部分有 5-7 个字符,用 "#" 与第二部分隔开,另一个数据在哪里(字符、数字,无所谓)
我需要在# 的每一侧将两个部分存储在两个变量中:
x = 12345
y = data
没有"#" 字符。
我一直在寻找一些 Lua 字符串函数,例如 splitOn("#") 或 substring until character,但我没有找到。
【问题讨论】:
-
@Wiktor Stribiżew 虽然它们看起来很相似,但 Lua 模式不是正则表达式,请不要添加 regex 标签。
-
正则表达式的人,也可能知道 Lua 模式,因此删除正则表达式标签是没有意义的。添加lua-patterns标签就可以了。
-
@WiktorStribiżew 这不是标签应该做的。我再说一遍:Lua 模式不是正则表达式。带有 regex 标签的问题会让人们感到困惑,使用 regex 的解决方案将是该问题的有效答案,但事实并非如此。
-
@WiktorStribiżew 不,我不是这么说的,你显然对 Lua 模式没有完全了解,请阅读PiL。 Lua 模式匹配不是正则表达式的扩展,就像其他语言/工具中的正则表达式一样。举个简单的例子,在 Lua 中尝试
print(string.match("ababab","(ab)+")),它并没有像你预期的那样工作,例如,the result in Ruby。 -
关于这个问题的回滚战正在 meta 上讨论here。
标签: string lua lua-patterns