【发布时间】:2020-09-22 20:49:47
【问题描述】:
这是我的原始数据:
h24-71-249-14.ca.shawcable.net - - [07/Mar/2004:22:29:13 - 0800] "GET /icons/gnu-head-tiny.jpg HTTP/1.1" 200 3049
h24-71-249-14.ca.shawcable.net - - [07/Mar/2004:22:29:13 - 0800] "GET /icons/gnu-head-tiny HTTP/1.1" 200 3049
我希望能够从 URI 中提取文件名(如果有,如果没有 - 忽略)。文件可以是任何文件类型(jpg、png、txt 等)
这是我目前所拥有的:
(\"+)(.*?)(\.\w{1,3})
我知道从" 开始我的字符串可能不是一个好主意,这可能是我的问题的原因,所以我想获得一些帮助来修复我的正则表达式。
谢谢!
【问题讨论】:
-
您只想要 GET 和 HTTP 之间的内容吗?然后只需
/GET\s*([^\s\.]*\.\S*)\s*HTTP/并保存您的捕获组 -
另外,有语言要求吗?
-
获取没有最后一个点和1-3个单词字符的文件名
"GET \S+/(\S+)\.\w{1,3}regex101.com/r/AT2y7x/1