如何知道一个字符串是否包含带有特殊符号的子字符串?

时间:2019-03-10 01:52:41

标签: 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("Yes!")
end

什么也没给我们?

如何知道某个字符串是否包含另一个字符串(带有空格或其他符号,例如“-”或“()”)?

1 个答案:

答案 0 :(得分:2)

"PS02 - " 有效似乎可以工作,因为它实际上仅匹配子字符串"PS02 "。这是因为-中的(space)-表示“匹配(空格)零次或多次,但次数尽可能少”。

魔术字符^$()%.[]*+-?必须每个前缀(转义)前加% ...,因此上述每种情况下的正确模式都是"PS02 %- ""PS02 %- F"。 / p>