【发布时间】:2019-03-04 13:24:23
【问题描述】:
以下字符串位于 html 文件中,该文件是我必须使用的字符串的子集:
content/css/dashboard.css
content/pages/icon-apache.png
content/js/dashboard-commons.js
sbadmin2-1.0.7/bower_components/jquery/dist/jquery.min.js
我正在尝试删除所有路径,只留下文件名,所以它会是这样的:
dashboard.css
icon-apache.png
dashboard-commons.js
jquery.min.js
我正在尝试找到一种方法,它不涉及仅将所有案例逐个获取并使用sed 替换它,而是一种通用的方法。
简而言之:
- 在 html 文件中查找模式(多级目录路径)并将其删除的正则表达式
编辑:我正在寻找适用于 linux 的解决方案,最好不涉及编写脚本或安装工具。
编辑 2:this question 部分回答了我的问题。有了那里提供的答案,我现在可以得到路径的最后一部分。但我仍在寻找用于从 html 文件中提取字符串列表的正则表达式模式。
编辑 3:根据要求,以下是一些示例:
<link href="sbadmin2-1.0.7/dist/css/sb-admin-2.css" rel="stylesheet">
<link href="content/css/dashboard.css" rel="stylesheet">
<link href="content/css/theme.blue.css" rel="stylesheet">
<script src="sbadmin2-1.0.7/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="sbadmin2-1.0.7/bower_components/flot/excanvas.min.js"></script>
<script src="sbadmin2-1.0.7/bower_components/flot/jquery.flot.js"></script>
【问题讨论】:
-
对于 HTML 问题,您必须向我们提供一个示例,以便我们知道这些字符串的来源。它们是 的一部分还是来自哪里。
-
为什么不考虑删除 RE 不需要的内容?例如使用 sed:
sed 's:.*/::' -
另外,您需要一个正则表达式来解析您的 HTML。 Never parse HTML or XML with a regex你可能会遇到小马。
-
@Thor 这是我提出问题时的意图。但我不熟悉 sed/awk/grep 想出最适合这项工作的正则表达式。