lua简单正则表达式问题

发布于 2024-11-26 22:28:30 字数 505 浏览 0 评论 0原文

我正在尝试学习如何在 lua 中使用正则表达式,但没有看到结果,所以我寻求帮助。

我有两种类型的网址:

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< /code>

我编写了正则表达式,它从第一种情况中检索文件名:

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

类似的正则表达式从第二种情况中检索文件名:

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

现在你能告诉我,如何将这两个正则表达式合并为一个吗?

I'm trying to learn how to use regexps in lua but I see no results, so I'm asking for help.

I got two types of url:

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

I need to do two things:

  1. get substring with filename: FILE.dat
  2. get substring with path: /a/b/c/d/FILE.dat

I have written regex which retrieves me a filename from a first case:

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

similar regex retrives me a filename from second case:

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

Now can You tell me, how to merge this two regexs into one?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

櫻之舞 2024-12-03 22:28:30

如果这两种情况是您唯一的情况,那么从后面开始匹配文件名很容易:

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

为了扔掉逗号分隔的部分,我会采取类似的方法

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

为了扔掉逗号分隔的部分,我会采取类似的方法

If those two cases are your only ones, matching for the filename is easy starting from the back:

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

For tossing out the comma separated part I'd resort to something like

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

For tossing out the comma separated part I'd resort to something like

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文