Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 返回正则表达式的每个实例_Regex_String_Sed_Awk_Pattern Matching - Fatal编程技术网

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>