在回答另一个问题时,我引用man grep
了关于-x
-x, --line-regexp
Select only those matches that exactly match the whole line.
For a regular expression pattern, this is like parenthesizing
the pattern and then surrounding it with ^ and $.
我已经知道这-x
就像“用^
and包围[正则表达式] $
,但为什么它还暗示“给模式加上括号”?
我想不出为什么括号是必要的,甚至改变任何东西。如果整个模式都用括号括起来,则不能在内部使用捕获组引用它。grep
抱怨尾随反斜杠,所以附加的也没有奇怪的行为)
(我也不希望这是一个选项的精神)。
为什么要man grep
专门提parenthesizing the pattern
for -x
?
一个重要的例子是具有替代品的正则表达式:
如果您只添加
^
并且$
没有括号,则变为它匹配以“this”开头或以“that”结尾的行,而不是仅包含“this”或“that”的行。