Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 创建正则表达式以空格后跟字符串长度8精确匹配单词_Php_Regex_String - Fatal编程技术网

Php 创建正则表达式以空格后跟字符串长度8精确匹配单词

Php 创建正则表达式以空格后跟字符串长度8精确匹配单词,php,regex,string,Php,Regex,String,我对正则表达式非常陌生,我想检查一个句子,该句子与精确给定的单词匹配,后跟空格,字母数字字符串以数字开头,该字符串的长度应为8。从下面的表达式中,我得到1作为结果,并匹配PO。但我不知道如何创建规则来匹配PO,然后是空格,并以第一个字母数字和长度为8个字符的字符串开始。任何帮助都将不胜感激 $header = 'Amazon.fr PO 2YCLN4EM'; $k = preg_match("/[PO]*/", $header); echo $k; 尝试如下 使用\d和精确匹配7次 尝试如下

我对正则表达式非常陌生,我想检查一个句子,该句子与精确给定的单词匹配,后跟空格,字母数字字符串以数字开头,该字符串的长度应为8。从下面的表达式中,我得到1作为结果,并匹配PO。但我不知道如何创建规则来匹配PO,然后是空格,并以第一个字母数字和长度为8个字符的字符串开始。任何帮助都将不胜感激

$header = 'Amazon.fr PO 2YCLN4EM';
$k = preg_match("/[PO]*/", $header);
echo $k;
尝试如下

使用
\d
和精确匹配7次

尝试如下

使用
\d
和精确匹配7次

请注意,该函数仅返回是否匹配。第三个参数包含匹配项


请注意,该函数仅返回是否匹配。第三个参数包含匹配项。

对于reference for reference,挑剔:\s表示任何空格字符,不一定只有空格。挑剔:\s表示任何空格字符,不一定只有空格。
\w
将匹配数字和字母。所以不需要把
\d\w
实际上,你是对的!我从\dA-Z模式开始,然后将A-Z更改为\w。我编辑了答案。微小的改进:OP希望“匹配精确给定的单词,后跟空格…”,精确给定的单词是
PO
。因此,为了排除
PO
是单词的后缀,在正则表达式中添加一个起始锚/非单词字符匹配:
/(^ |\W)PO\\d\W{7}/
@collapsar这可能是他想要的,但我认为在“匹配PO后跟空格”中没有说明:@BeS是的,我从他的文章的第一行获取了规范…:)<代码>\w将匹配数字和字母。所以不需要把
\d\w
实际上,你是对的!我从\dA-Z模式开始,然后将A-Z更改为\w。我编辑了答案。微小的改进:OP希望“匹配精确给定的单词,后跟空格…”,精确给定的单词是
PO
。因此,为了排除
PO
是单词的后缀,在正则表达式中添加一个起始锚/非单词字符匹配:
/(^ |\W)PO\\d\W{7}/
@collapsar这可能是他想要的,但我认为在“匹配PO后跟空格”中没有说明:@BeS是的,我从他的文章的第一行获取了规范…:)
/PO\s\d\w{7}/
$header = 'Amazon.fr PO 2YCLN4EM';

if (preg_match('/PO\ \d\w{7}/', $header, $matches)) {
    print_r($matches);
}