正则表达式:在字符串

时间:2017-01-09 16:44:55

标签: regex grep

问题:我想匹配那些包含两位数的字符串。它的位置是随机的,一个数字应该匹配2次。

更好地理解我的问题的示例:

3abc3 
a22de
b7abc7a

对于这些字符串,它必须匹配。如果一个字符串包含两个数字,但它们不同,则它不应该匹配。

示例:

3abcd2不应该匹配 3abc3 - >应该匹配

我尝试使用{n},但它没有帮助,因为它认为这两个数字相互跟随。

1 个答案:

答案 0 :(得分:2)

您可以使用此grep

grep -E '([0-9]).*\1' file

3abc3
a22de
b7abc7a

关于此正则表达式:

([0-9]) # match and capture any digit in group #1
.*      # match 0 or more of any character in between
\1       # using back-reference \1, make sure we have same digit as in group #1