Хорошо, просто небольшая заметка для этого обсуждения; Эта страница меня особенно смутила:
Регулярные выражения SciTE
, поскольку тот говорит, что \s
соответствует пробелу, как я знаю из других синтаксисов регулярных выражений ... И поэтому я пробую это в оболочке:
$ lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
> c=" d"
> print(c:match(" "))
> print(c:match("."))
> print(c:match("\s"))
nil
> print("_".. c:match("[ ]") .."_")
_ _
> print("_".. c:match("[ ]*") .."_")
_ _
> print("_".. c:match("[\s]*") .."_")
__
Хммм ... кажется \s
здесь не распознается - так что страница, вероятно, ссылается на регулярное выражение в Scite Find / Replace, а не на синтаксис регулярного выражения Lua (который также использует scite).
Затем я перечитываю lua-users wiki: Patterns Tutorial и начинаю получать комментарий о том, что escape-символ %
, а не \
в ответе @ NormanRamsey, Итак, попробуем это:
> print("_".. c:match("[%s]*") .."_")
_ _
... действительно работает.
Итак, так как я изначально думал, что «шаблоны» Луа - это команды / движки, отличные от «регулярного выражения» Луа, я думаю, что лучший способ сказать это так: «шаблоны» Луа являются Луа- специфический синтаксис / механизм "регулярных выражений" (другими словами, их не два :)
)
Ура!