Regex 返回正则表达式的每个实例
我在谷歌上搜索了很多次,每个人都在告诉我如何返回正则表达式匹配的行 假设我在一个文本文件中有这样一行:Regex 返回正则表达式的每个实例,regex,string,sed,awk,pattern-matching,Regex,String,Sed,Awk,Pattern Matching,我在谷歌上搜索了很多次,每个人都在告诉我如何返回正则表达式匹配的行 假设我在一个文本文件中有这样一行: <a href=http://google.com> Google </a> 我希望能够只返回>和.*带'sed' sed-n的/^.*>\([^如果您有GNU grep,-o选项可以满足您的需要 echo '<a href=http://google.com> Google </a><span>foo</span>
<a href=http://google.com> Google </a>
我希望能够只返回>和<(“谷歌”)之间发生的内容。问题是我可能有一个包含数千行的文件,我只想让sed/awk返回与正则表达式匹配的确切字符串
我想应该是这样的:
sed 's/>.*</p'
sed/>.*带'sed'
sed-n的/^.*>\([^如果您有GNU grep,-o
选项可以满足您的需要
echo '<a href=http://google.com> Google </a><span>foo</span>' |
grep -oP '(?<=>).*?(?=<)'
这假设您的html标记及其包含的数据在一行上。这将不匹配
<a href=...>
blah
</a>
@glenn:那么我会说使用真正的XML/HTML解析器。如果它比简单的正则表达式更难,那么是时候放弃更简单的工具了。
Google
foo
<a href=...>
blah
</a>