Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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,有没有办法让regex不回到这里?如中所示,我希望它不要返回不完全是8位数字的字符串 preg_match_all( '/\w+\d{8}', 'word123456789', ret ); \w+也将匹配数字。如果您只想返回以8位数字结尾的字符串,那么可能: '/\b[A-Za-z]+\d{8}\b/' 编辑:应该读取仅以字母开头,以八位数字结尾的字符串。如果您还需要其他东西,请澄清您可以使用以下内容: '\w+(?<!\d)\d{8}\b' 如果您只需要正好是8位的字符串,为什么

有没有办法让regex不回到这里?如中所示,我希望它不要返回不完全是8位数字的字符串

preg_match_all( '/\w+\d{8}', 'word123456789', ret );

\w+也将匹配数字。如果您只想返回以8位数字结尾的字符串,那么可能:

'/\b[A-Za-z]+\d{8}\b/'

编辑:应该读取仅以字母开头,以八位数字结尾的字符串。如果您还需要其他东西,请澄清

您可以使用以下内容:

'\w+(?<!\d)\d{8}\b'

如果您只需要正好是8位的字符串,为什么要包括
\w+
?还是只希望字符串以8位数字结尾?不返回是什么意思?是指8个数字还是全部字符?你至少需要一封信吗?请具体说明。我希望字符串的结尾正好是8位数字,如果有更多,则应忽略它。是否应该像
1word123456789
那样成功匹配?
word12345678          - Match
word123456789         - No Match
1word12345678         - Match
1w123456789rd12345678 - Match