LUA простой вопрос регулярных выражений - PullRequest
2 голосов
/ 28 июля 2011

Я пытаюсь научиться использовать регулярные выражения в lua, но не вижу результатов, поэтому прошу помощи.

Я получил два типа URL:

1) /a/b/c/d/some,text,commas,and,so,on,FILE.dat 
2) /a/b/c/d/FILE.dat

Мне нужно сделать две вещи:

  1. получить подстроку с именем файла: FILE.dat
  2. получить подстроку с путем: /a/b/c/d/FILE.dat

У меня естьнаписано регулярное выражение, которое возвращает мне имя файла из первого случая:

string.match(url, ".*,(.*)")

аналогично регулярное выражение извлекает мне имя файла из второго случая:

string.match(url, ".*/(.*)")

Теперь вы можете сказать мне, как объединить этодва регулярных выражения в один?

1 Ответ

2 голосов
/ 28 июля 2011

Если эти два случая являются вашими единственными, сопоставление имени файла легко, начиная со спины:

filename=string.match(url,'([%w_]+%.%w%w%w)$')

Для выброса части, разделенной запятыми, я прибегну к чему-то вроде

filepath=string.gsub(url,'%w+,', '')
...