正则表达式匹配3到4位数

时间:2010-08-20 19:21:14

标签: regex perl

我正在学习正则表达式,我正在尝试找到这个字符串day1otlk_XXXX.gif 其中4 X将是3到4个随机数字。这就是我到目前为止所关闭的事情?

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

5 个答案:

答案 0 :(得分:1)

有点亲近。您有\d个数字。

你知道正则表达式的range operator是什么吗?

答案 1 :(得分:1)

非常接近。这应该做到......

day1otlk_\d{3,4}\.gif

大括号{}允许您指定一定数量的重复字符{3,4}或一个确切的数字,如{4}

答案 2 :(得分:1)

正则表达式应为/day1otlk_(\d{3,4})\.gif/,可能/i为不区分大小写。如果它在字符串中,您可能需要/\bday1otlk_(\d{4})\.gif\b/代替"asdjklfhlday1otlk_5242.gifiasdytoi"之类的内容,而这些内容可能是您不想要的。

{3,4}表示需要有三到四位数字,并且括号可以在\ 1或$ 1中捕获这四位数字。

(奖励未被要求回答:如果你只需要三个,或者说五个,你就不能这样做。{3,5}会得到三到五个。你需要{{1}或类似的东西。)

答案 3 :(得分:1)

使用花括号指定范围量词:

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

答案 4 :(得分:1)

您可以指定包含以下内容的3位或4位数字:

day1otlk_\d{3,4}\.gif

{}repetition修饰符。它比*+更准确。您可以使用它来指定前一个模式的重复次数或重复范围。

a{m} - 完全是一个人 a{m,} - 至少是一个人 a{m,n} - 至少m,但最多n a

相关问题