Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 由特定范围和长度组成的正则表达式匹配号?_Php_Regex - Fatal编程技术网

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

Php 由特定范围和长度组成的正则表达式匹配号?,php,regex,Php,Regex,我正在尝试匹配一个数字,该数字可能由[1-4]组成,长度为{1,1} 我尝试了以下多种变体,但都不起作用: /^string\-(\d{1,1})[1-4]$/ 有什么指导方针吗?谢谢 这并不难: /^string-([1-4]{1})$/ 您只需使用: /^string-[1-4]$/ 匹配字符串的开头,后跟单词“string-”,后跟一个数字,从1到4,以及字符串的结尾。这将只匹配此字符串,而不匹配其他字符串 如果这是一个较大字符串的一部分,而您只需要一个部分,则可以使用以下内容: /

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

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

/^string\-(\d{1,1})[1-4]$/
有什么指导方针吗?谢谢

这并不难:

/^string-([1-4]{1})$/
您只需使用:

/^string-[1-4]$/
匹配字符串的开头,后跟单词“string-”,后跟一个数字,从1到4,以及字符串的结尾。这将只匹配此字符串,而不匹配其他字符串

如果这是一个较大字符串的一部分,而您只需要一个部分,则可以使用以下内容:

/string-[1-4]\b/
它与上面的匹配几乎相同,只是作为更大字符串的一部分


您还可以(在任一选项中)将字符类(
[1-4]
)包装在括号中,以将其作为匹配数组的一个单独部分(在使用preg\u match/preg\u match\u all时)。

/^[1-4]$/
是您所需要的全部(根据您的描述),但我猜还有更多。啊,最后!我想我也必须使用
\d
\d
只是
[0-9]
的缩写(这只是
[0123456789]
的缩写)。根本不需要。你为什么不回答呢?不需要
{1}
。字符类表示已经有一个字符。您可能只想在字符类后面加一个
\b
,以防止出现多个数字。谢谢您的帮助,Jonathan。