3

500 から 599 の間のすべての数値を検索したい。私は正規表現に非常に慣れていません。私はこれを思いつきました:

5[0-9][0-9]+

これは正常に動作しており、一致してい566,577,500ます。しかし、それも一致し6578ます。私はしたくない。

編集:

これが私のファイルの内容です:

asd 554
sad
sads

dsa


456

sa
d

dsa
asda
d500
521
519 asdasd
524 asdasdsdsadsdasd sadsadsadasdsd asdsa dsa dsadsad sad asdas dsa sad sad asds a 543

多くの人が私が試したことを示唆したように:

grep "^5[0-9]{2}$" test

数字がまったく見つかりません!

これに制約を付けるにはどうすればよいですか?

4

4 に答える 4

6

5xxがx5xxの一部として出現するときではなく、行でのみ5xx を一致させたい場合は、

^5\d{2}$

\d = 数字

^ = 行頭

$ = 行末

編集:

\s*5\d{2}\sあなたが使用すべきものです。5xx の両側のスペースに一致します。

于 2012-09-06T08:56:27.440 に答える
5

grep最も簡単な方法は、-w単語全体のみを一致させるために使用することです。

grep --color=always -w "5[0-9][0-9]" test
于 2012-09-06T09:18:44.603 に答える
1

+ 記号を削除します。

5[0-9][0-9]

これは、2 つの数字が続く "5" に一致し、それ以外には何も一致しません。

于 2012-09-06T08:54:11.600 に答える