正则表达式匹配编号由特定范围和长度组成?

时间:2013-11-18 00:40:07

标签: php regex

我正在尝试匹配可能由[1-4]组成的数字,其长度为{1,1}

我尝试过以下多种变体,但不起作用:

/^string\-(\d{1,1})[1-4]$/

任何指导方针?谢谢!

2 个答案:

答案 0 :(得分:1)

这并不难:

/^string-([1-4]{1})$/

答案 1 :(得分:1)

你应该使用:

/^string-[1-4]$/

匹配字符串的开头,后跟单词“string-”,后跟单个数字,1到4以及字符串的结尾。这将只匹配此字符串而不是其他任何内容。

如果这是一个较大的字符串的一部分,你想要的只是一部分,你可以使用:

/string-[1-4]\b/

与上面几乎相同,只是作为更大字符串的一部分。

您可以(在任一选项中)将字符类([1-4])包装在括号中,以将其作为matches数组的单独部分(使用preg_match / preg_match_all时)。