我读到分组将表达式视为一个单元。这意味着什么?
此外,做什么grep "\(grouping\)" file.txt
或grep -E "(grouping)" file.txt
做什么?我还读到表达式用括号分组。同样,什么是分组表达式?
当我运行该命令时,它会grouping
在文件中突出显示。有什么grep "\(grouping\)"
不同grep grouping
?
我读到分组将表达式视为一个单元。这意味着什么?
此外,做什么grep "\(grouping\)" file.txt
或grep -E "(grouping)" file.txt
做什么?我还读到表达式用括号分组。同样,什么是分组表达式?
当我运行该命令时,它会grouping
在文件中突出显示。有什么grep "\(grouping\)"
不同grep grouping
?
本质上,它导致括号内的任何内容都被视为单个原子。例如,如果您想应用量词,这很有用。相比:
( where
*
仅适用于g
) 与where
*
应用于整个子模式grouping
。在大多数(全部?)正则表达式方言中,
(grouping)
还将匹配的文本捕获到索引捕获组中,从而允许随后对其进行反向引用。这并没有太多的应用grep
——最明显的一个是用于检测重复的元素。匹配后跟相同字符的任何单个字符。在模式替换的上下文中(
sed
例如,而不是grep
),捕获的组也可能在替换文本中被引用。在更具表现力的方言中还有其他变体——例如 Perl 的
(?:grouping)
非捕获组。有关更多信息,请参见例如