regex - 字符串之间的正则表达式(多个结果?)
问题描述
我正在使用正则表达式来过滤来自 HTML 页面的链接,如下所示:
(?<=data-ng-non-bindable data-src=\")(.*?)(?=\" data-caption)
如何更改它以获得多个结果,而不仅仅是第一个?
解决方案
使用sed
,您替换字符串,而不是提取。您可以设置一些选项以仅实际输出替换的子字符串,同一行上的匹配总是存在大问题。
因此,最简单的方法是使用grep
with-oP
选项:
grep -oP '(?<=data-ng-non-bindable data-src=").*?(?=" data-caption)' file > outfile
双引号并不特殊。
推荐阅读
- c++ - Visual Studio 2019 不强调 C++ 项目中的错误
- javascript - 搜索功能 .match() 区分大小写
- javascript - 如何使用 for 循环对用户插入的数字求和?
- python - 炸弹包括python中的有序对
- google-chrome-extension - Linux 安装上的 Chrome 扩展程序“包无效”错误
- python - poliastro epoch:如何指定非默认值?
- node.js - 为什么我的标题没有插入到我的数据库中?
- sql - 合计员工/plsql的总就业时间/年
- java - 为什么我必须为位掩码声明一个长变量?
- python - Heroku 30s 超时错误,如何使 Django 将变量创建视为后台任务(工作者)?