简体   繁体   中英

Regular Expression to match 3 to 4 digits

I am learning regular expressions and I am trying find this string day1otlk_XXXX.gif where the 4 X's will be 3 to 4 random digits. This is what I have so far am I close?

qr/day1otlk_\d++\.gif/i

Kinda close. You have the \\d for digits.

Do you know what the range operator for regular expressions is?

Very close. This should do it...

day1otlk_\d{3,4}\.gif

The braces {} allow you to specify a ranged number of repeated characters {3,4} or an exact number like {4} .

the regex should be /day1otlk_(\\d{3,4})\\.gif/ , maybe /i for case-insensitivity. if it's in a string you might want /\\bday1otlk_(\\d{4})\\.gif\\b/ instead for stuff like "asdjklfhlday1otlk_5242.gifiasdytoi" , which you probably don't want.

the {3,4} means that there need to be between three and four digits, and the parentheses to capture those four digits in \\1 or $1.

(bonus un-asked-for answer: if you need exactly three or, say, five, you can't do that. {3,5} will get between three and five. you'd need \\d{3}\\d{2}? or something of the sort.)

您可以使用大括号指定范围量词:

qr/day1otlk_\d{3,4}\.gif/i

You can specify that there will be 3 or 4 digits with the following:

day1otlk_\d{3,4}\.gif

The {} is a repetition modifier. It's a little more precise than * or + . You can use it to specify an exact number of repetitions of the preceding pattern or a range of repetitions.

a{m} - exactly m a's
a{m,} - at least m a's
a{m,n} - at least m but at most n a's

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM