如何获取所有实例,只有正则表达式的实例包含在一行或字符串中?
例如,假设网页的输出(所有单行)为:
<Table border=1 cellpadding=2><TR><TH><font size=2>LAN IP BLOCK</font></TH><TH><font size=2>CUST_NAME</font></TH> <TH><font size=2>ID
</TH></TR><TR><TD><font size=2>10.4.4.0 / 29</font></TD><TD><font size=2>Customer data</font></TD><TD><font size=2></font></TD></T
TD><font size=2>10.1.1.0 / 27</font></TD><TD><font size=2>Customer</font></TD><TD><font size=2></font></TD></TR></Table><p>
我想获取IP CIDR数据的每个实例。我知道我必须使用IP地址RE(我相信我可以找到/找出它),但是如何获得EACH实例并简单地删除所有其他文本?我想在命令行上用grep / sed等做这个,但我想我需要使用python。我知道我可以使用Perl,但我必须安装它。
答案 0 :(得分:2)
您正在寻找grep
选项-o
和-E
:
grep -oE "pattern1|pattern2|pattern3|pattern4|...|patternN" input_file
来自man grep
:
-o, --only-matching
Print only the matched (non-empty) parts of a matching line,
with each such part on a separate output line.
-E, --extended-regexp
Interpret PATTERN as an extended regular expression
(-E is specified by POSIX.)