Как узнать, содержит ли строка подстроку со специальными символами? - PullRequest
1 голос
/ 10 марта 2019

почему этот код:

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 Ответ

2 голосов
/ 10 марта 2019

"PS02 - " работает , кажется, работает, потому что на самом деле он соответствует только подстроке "PS02 ". Это связано с тем, что - в (space)- означает «совпадать (пробел) ноль или более раз, но как можно меньше раз».

Магические символы ^$()%.[]*+-? каждый должен иметь префикс (экранированный) с начальным % ..., поэтому правильные шаблоны в каждом случае выше "PS02 %- " и "PS02 %- F".

...