正则表达式:找到字符串中数字的出现
问题描述:
问题:我想匹配那些包含两个数字的字符串,它们的位置是随机的,数字应该匹配2次。为了更好地理解我的问题正则表达式:找到字符串中数字的出现
例子:
3abc3
a22de
b7abc7a
对于这些字符串必须match.If一个字符串包含两个数字,但它们是不同的,那么它不应该匹配。
例子:
3abcd2不应该匹配 3abc3 - >应该匹配
我尝试使用{N},但它没有帮助,因为它认为这两个数如下对方。
答
您可以使用此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
'^ *(\ d)* \ 1 * $'使用捕获组找到第一个数字,然后再次参考该捕获组。 [DEMO](https://regex101.com/r/LZTJVl/1) –
我使用正则表达式egrep – Zsombi
数字或数字? – Aaron