如何捕获两个正则表达式

如何捕获两个正则表达式

在此命令中,我想提取类似于 *.com 或 *.net 的字符串,其中 * 不是点。我写了这个:

grep -P -E '^[^.]+\.com$ |^[^.]+\.net$' example.csv 

我收到此错误:

grep: conflicting matchers specified

你能澄清一下吗?

答案1

不能同时使用 PCRE ( -P) 和扩展正则表达式 ( )。-E在这种情况下,似乎您根本不​​使用 PCRE 表达式,因此您可以删除-P.您也不能期望在 后匹配空格$

将大部分表达式合并为较短的表达式:

grep -E '^[^.]+\.(com|net)$'

或者,

grep -E -x '[^.]+\.(com|net)'

-x选项将导致grep仅匹配完整的行。

该表达式匹配非零数量的非点字符,后跟一个点,然后是netor com

相关内容