Я пытаюсь сопоставить строку в формате domain \ username с помощью Lua, а затем замаскировать шаблон с помощью #
.Попытка сопоставить строку в формате домена имя пользователя с помощью Lua, а затем замаскировать шаблон с помощью '#'
Так что, если вход sample.com\admin;
, выход должен быть ######.###\#####;
. Строка может заканчиваться либо ;
, ,
, .
, либо пробелами.
Другие примеры:
sample.net\user1,hello -> ######.###\#####,hello
test.org\testuser. Next -> ####.###\########. Next
Я попытался ([a-zA-Z][a-zA-Z0-9.-]+)\.?([a-zA-Z0-9]+)\\([a-zA-Z0-9 ]+)\b
, который отлично работает с http://regexr.com/. Но с демонстрацией Lua это не так. Что не так с шаблоном?
Ниже приведен код, который я использовал для проверки в Lua:
test_text="I have the 123 name as domain.com\admin as 172.19.202.52 the credentials"
pattern="([a-zA-Z][a-zA-Z0-9.-]+).?([a-zA-Z0-9]+)\\([a-zA-Z0-9 ]+)\b"
res=string.match(test_text,pattern)
print (res)
Он печатает nil
.
Lua не поддерживает обычные выражения. lua использует [шаблоны] (http://www.lua.org/manual/5.1/manual.html#5.4.1). Если вам нужны регулярные выражения, вам нужна библиотека для них. –
, вы можете рассмотреть возможность использования [lpeg] (http://www.inf.puc-rio.br/~roberto/lpeg/). – dualed