string.gmatch, чтобы найти строку, включенную между двумя знаками неравенства - PullRequest
1 голос
/ 02 января 2012

Я использую Lua, уже использовал Google и ничего, не могу найти способ получить строку между знаками неравенства (<>) Другие скобки легко получить, но это не так. Это можно сделать?

Цель: как извлечь «имя» из строки между знаками неравенства?

Строка: <имя>: Сообщение

Ответы [ 2 ]

3 голосов
/ 02 января 2012

Если name не содержит >, то <(.-)> работает.

0 голосов
/ 02 января 2012

Вы можете использовать шаблон (%b<>) для захвата соответствия <>. Затем, используя это значение, вы можете просто использовать string.sub, чтобы отрезать первый и последний символ:

name,message=('< name<> > : Foo Bar!'):match('(%b<>)%s*:%s*(.*)')
name=name:sub(2,-2)
print(name,'sent message :',message)

Как вы можете видеть, это также заботится о строках, содержащих другие, встроенные <> знаки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...