Мне нужно регулярное выражение для использования в string.gmatch, которое соответствует последовательностям буквенно-цифровых символов и не буквенно-цифровых символов (кавычки, скобки, двоеточия и т. П.) Как разделенные, одиночные, совпадения , так что в основном:Regex для соответствия токенам в строке с использованием string.gmatch
str = [[
function test(arg1, arg2) {
dosomething(0x12f, "String");
}
]]
for token in str:gmatch(regex) do
print(token)
end
Если печать:
function
test
(
arg1
,
arg2
)
{
dosomething
(
0x121f
,
"
String
"
)
;
}
Как я могу добиться этого? В стандартном регулярном выражении я обнаружил, что ([a-zA-Z0-9]+)|([\{\}\(\)\";,])
работает для меня, но я не уверен, как перевести это в регулярное выражение Lua.
Что соответствует '% p'? – user6245072
'% w' - буквенно-цифровой,'% p' - пунктуация (пунктуация - это все ASCII7, кроме буквенно-цифровых, пробелов и управляющих символов) –
Это действительно полезно - я мог бы, например, добавить все токены в таблицу, а затем обработать их, но как я могу сохранить в уникальных токеновных строках, разделенных символом '' '? – user6245072