Lua 如何知道字符串是否包含带有特殊符号的子字符串?
为什么要使用此代码:Lua 如何知道字符串是否包含带有特殊符号的子字符串?,lua,lua-patterns,Lua,Lua Patterns,为什么要使用此代码: p="PS02 - Fretted stereo2stereo (x86)" s="PS02 - " if string.match(p,s) then reaper.ShowConsoleMsg("Yes!") end 给了我们“是的!” 但是这个代码: p="PS02 - Fretted stereo2stereo (x86)" s="PS02 - F" if string.match(p,s) then reaper.ShowConsoleMsg
p="PS02 - Fretted stereo2stereo (x86)"
s="PS02 - "
if string.match(p,s) then
reaper.ShowConsoleMsg("Yes!")
end
给了我们“是的!”
但是这个代码:
p="PS02 - Fretted stereo2stereo (x86)"
s="PS02 - F"
if string.match(p,s) then
reaper.ShowConsoleMsg("Yes!")
end
什么都没有给我们
如何知道某个字符串是否包含另一个字符串(带有空格或其他符号,如“-”或“()”?“PS02-”
似乎有效,因为它实际上只匹配子字符串“PS02”
。这是因为(空格)
中的-
表示“匹配(空格)零次或多次,但次数尽可能少。”
魔法字符
^$()%.[]*+-?
必须以前导的%
作为前缀(转义)。。。因此,在上述每种情况下,正确的模式是“PS02%-”
和“PS02%-F”
替换string.match(p,s)
为string.match(p,(s:gsub(%p)”,“%%%0”)
或替换if string.match(p,s),然后将替换为if string.find(p,s,1,true)然后
对于我们这些来自其他语言(这里是perl)的人来说,这将是一个棘手的问题。Lua模式不是我们成长过程中使用的正则表达式。