例如,我有以下時間範圍來匹配正則表達式的具體數量範圍:如何用grep只
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
而且我要的是13到20得出的數字只用grep -E '[1-2] [??]' 是否有可能?
請不要給AWK左右回答我不要求它非常感謝你
例如,我有以下時間範圍來匹配正則表達式的具體數量範圍:如何用grep只
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
而且我要的是13到20得出的數字只用grep -E '[1-2] [??]' 是否有可能?
請不要給AWK左右回答我不要求它非常感謝你
這應做到:
^(1[1-9]|2[0-6])$
|
意味着正則表達式中交替。你可以把它看作邏輯or
。因此:
1[3-9]|20
意味着隨後3,4,5,6,7,8,或9,OR 2後跟0
1這將匹配指明的任何數字(13,14,15,16,17,18,19或20)。
上面可以
1[1-9]|2[0-6]
具體做法是:1,接着1到9 OR 2接着0到6
如波希米亞指示。
^
和$
零寬度斷言錨點分別表示「字符串的開始」和「字符串的結束」。它們的確切含義可以根據正則表達式的不同而有所不同,但在egrep
和其他基於行的正則表達式中,它們的含義是相同的。您可能需要使用這些如果在a13b &20-
在行其他字符的可能性。如果你知道,這一數目將是所有這些都是在那個特定的路線,他們是不是絕對必要的。
無論如何都應該使用錨點,因爲數字顯然可以有2位以上的數字,儘管這是他顯示的所有輸入,但OP並沒有說他的數字都是2位。 –
您需要在雙引號(「」)中包含正則表達式。此外,考慮到更廣泛的搜索域,如果數字超過2位,則需要在表達式中添加額外的量詞。說你要搜索數字範圍
1865259000 to 1865361999
正則表達式應該是:
"1865259[0-9]{3}|18652[6-9][0-9]{4}|18653[0-6][0-1][0-9]{3}"
花括號內的數字表示該模式應該完全匹配的次數。所以,
[0-9]{2}
裝置2所發生的0位數之間至9
如何'egrep的「1 [3-9] | 20''? –
@Explosion Pills很好解決它,但你可以請解釋| |?感謝的人 – Soncire