問題:我想匹配那些包含兩個數字的字符串,它們的位置是隨機的,數字應該匹配2次。爲了更好地理解我的問題正則表達式:找到字符串中數字的出現
例子:
3abc3
a22de
b7abc7a
對於這些字符串必須match.If一個字符串包含兩個數字,但它們是不同的,那麼它不應該匹配。
例子:
3abcd2不應該匹配 3abc3 - >應該匹配
我嘗試使用{N},但它沒有幫助,因爲它認爲這兩個數如下對方。
問題:我想匹配那些包含兩個數字的字符串,它們的位置是隨機的,數字應該匹配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