与“|”等效的“AND”运算符是什么 在正则表达式中使用“awk”时?

lyl*_*klb 3 awk regular-expression

我知道这是RegExp 表达式中的|逻辑“OR”运算符。但是等效的“AND”运算符(同样正则表达式中)是什么?

笔记:

  • 这与多个表达式的“AND”运算符无关,而只是&&
  • 例如,类似于/A&B/同时匹配A和 的内容B

ter*_*don 10

在我熟悉的任何正则表达式风格中都没有这样的运算符。如果您想匹配同时具有两者的输入,AB可以编写A.*Bor B.*A,两者都需要按特定顺序进行;或组合两个表达式以接受任一顺序A.*B|B.*A

或者,进行两场单独的比赛。例如,在awk

awk '/A/ && /B/' file
Run Code Online (Sandbox Code Playgroud)

或手动处理两个grep实例:

grep A file | grep B
Run Code Online (Sandbox Code Playgroud)

您实际上并不需要在正则表达式中使用 AND 运算符。正则表达式的思想是它描述一个字符串。根据定义,您将要匹配的内容放入正则表达式中。因此需要一个 OR 来允许匹配 A 或 B,但是 AND 基本上内置于正则表达式中:您在正则表达式中编写的任何内容都需要匹配,因此所有内容基本上都由 AND 运算符连接,这使得专用的 AND 毫无意义。