如何判断一个字符串是否包含特殊符号的子字符串?

为什么以下代码:

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

却没有任何输出?

如何判断某个字符串是否包含另一个字符串(包括空格或者其他特殊符号,如“-”或“()”)?

点赞
用户1695906
用户1695906

"PS02 - " 看起来有效是因为它只匹配子字符串 "PS02 "。这是因为 (space)- 中的 - 意味着 "匹配 (space) 零次或多次,但尽可能少的次数。"

魔法字符 ^$()%.[]*+-? 每个都必须以前缀(转义) % 开头... 所以在上述每种情况下,正确的模式是 "PS02 %- ""PS02 %- F"

2019-03-10 06:25:20