问题:我想匹配那些包含两位数的字符串。它的位置是随机的,一个数字应该匹配2次。
更好地理解我的问题的示例:
3abc3
a22de
b7abc7a
对于这些字符串,它必须匹配。如果一个字符串包含两个数字,但它们不同,则它不应该匹配。
示例:
3abcd2不应该匹配 3abc3 - >应该匹配
我尝试使用{n},但它没有帮助,因为它认为这两个数字相互跟随。
答案 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