在多个条件下利用grep regex表达式

时间:2019-05-16 13:00:21

标签: regex unix

所以我试图提出一个检查

的代码
  1. 如果字符串在句子的开头有重复的字符,并且

aa .....,bb .....

  1. 如果字符串以重复字符结尾。

.... aa,..... bb

我正在尝试结合这两个条件,并查看我的文本文件中的任何字符串是否符合条件。

到目前为止,我已经了解了如何使用egrep

有了它我就可以做算法的第一部分

egrep '^(.)\1{1}' *.txt

但是当我尝试将其与第二部分结合时,

egrep '^(.)\1{1}|(.)\1{1}$' *.txt

第二部分被忽略,结果与以前相同。

如何将多个模式组合到正则表达式中?

1 个答案:

答案 0 :(得分:1)

在轮换中,您必须引用第二部分中的第2组,因为您有2个捕获组。

请注意,您可以省略{1}量词。

^(.)\1|(.)\2$

查看regex demo

您的代码可能如下:

egrep '^(.)\1|(.)\2$' *.txt

要在开头和结尾都匹配重复的字符,可以使用:

^(.)\1.*(.)\2$

Regex demo