如何才能使正则表达式字符类强制执行?

时间:2015-12-25 14:34:56

标签: php regex string

我正在尝试创建一个模式。我有图像,我想选择这些包含字符串“thumb”的图像,我有以下伪结构:

something-$s[One of these digits: 1 or 2]thumb.jpg

我尝试了以下正则表达式模式:

$pattern_thumb = "/^.*-$s?[1-2]?\-thumb.jpg$/";

正确选择这些图像($s = 18054):

imagename-180541-thumb.jpg
imagename-180542-thumb.jpg

但问题是,它还选择$s之后没有1或2的图像:

imagename-18054-thumb.jpg

如何将这些数字[1-2]添加为必填项而非可选项?

1 个答案:

答案 0 :(得分:1)

您可以使用此模式:/^.*-$s[12]\-thumb.jpg$/

  1. 您只需要1和2,因此不需要使用范围:[1-2] [12]
  2. 您需要[12]作为必填字符串,因此您不应使用?
  3. 检查my regex 101 exampleRepetition (PCRE regex syntax; PHP Manual)