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

How to know if a string contains substring with special symbols?

为什么这个代码:

p="PS02 - Fretted stereo2stereo (x86)" 
s="PS02 - " 
if string.match(p,s) then 
  reaper.ShowConsoleMsg("Yes!")
end

给我们 "Yes!"

但是这个代码:

p="PS02 - Fretted stereo2stereo (x86)" 
s="PS02 - F" 
if string.match(p,s) then 
  reaper.ShowConsoleMsg("Yes!")
end

什么也没给我们??

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

"PS02 - " works 似乎有效,因为它实际上只匹配子字符串 "PS02 "。这是因为 (space)- 中的 - 表示 "match (space) zero or more times, but as few times as possible."

魔术字符 ^$()%.[]*+-? 必须分别以 % 为前缀(转义)...因此上述每种情况下的正确模式是 "PS02 %- ""PS02 %- F" .