首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >返回正则表达式的每个实例

返回正则表达式的每个实例
EN

Stack Overflow用户
提问于 2011-04-07 02:40:02
回答 2查看 121关注 0票数 2

我广泛地搜索了一下,每个人都在告诉我如何返回regex匹配的行……

假设我在一个文本文件中有这样一行:

代码语言:javascript
运行
复制
<a href=http://google.com> Google </a>

我希望能够只返回>和< ("Google")之间发生的内容。问题是,我可能有一个包含数千行这样的文件,而我只想让sed/awk返回与正则表达式完全匹配的字符串。

我认为它应该是这样的:

代码语言:javascript
运行
复制
sed 's/>.*</p'

但很明显那是行不通的。

这简直要了我的命,因为我确信这可能很简单,但我就是找不到合适的sed行。sed就不能这样做吗?

所以我只想让它搜索一个文件,匹配我给它的正则表达式,然后返回完全匹配的内容(不是这一行)

有谁有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2011-04-07 02:42:13

使用` `sed

代码语言:javascript
运行
复制
sed -n 's/^.*>\([^<]*\)<.*$/\1/p'
票数 3
EN

Stack Overflow用户

发布于 2011-04-07 03:34:23

如果您有GNU grep,那么-o选项将执行您想要的操作。

代码语言:javascript
运行
复制
echo '<a href=http://google.com> Google </a><span>foo</span>' | 
grep -oP '(?<=>).*?(?=<)'

返回

代码语言:javascript
运行
复制
 Google 
foo

这假设您的html标记及其包含的数据在一行中。这不匹配

代码语言:javascript
运行
复制
<a href=...>
blah
</a>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5571341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档