PHP中的快速正则表达式模式
我有一个很大的文本字符串块,我需要提取所有匹配以下模式的文本:PHP中的快速正则表达式模式,php,regex,Php,Regex,我有一个很大的文本字符串块,我需要提取所有匹配以下模式的文本: QXXXXX-X(其中X可以是任何数字,0-9) 如何在PHP中实现这一点 <?php preg_match_all("","Q05546-8 XXX Q13323-0",$output,PREG_PATTERN_ORDER); print_r($output); ?> 给你: preg_match_all('/\bQ[0-9]{5}-[0-9]\b/',"Q05546-8 XXX Q13323-0",$output
QXXXXX-X
(其中X可以是任何数字,0-9)
如何在PHP中实现这一点
<?php
preg_match_all("","Q05546-8 XXX Q13323-0",$output,PREG_PATTERN_ORDER);
print_r($output);
?>
给你:
preg_match_all('/\bQ[0-9]{5}-[0-9]\b/',"Q05546-8 XXX Q13323-0",$output,PREG_PATTERN_ORDER);
print_r($output);
或者,您可以使用速记类\d
作为数字:\bQ\d{5}-\d\b
正则表达式解释:
-单词边界(我们位于单词字符(\b
)和非单词字符(所有其他字符)之间的开头)[a-zA-Z0-9)
-区分大小写的文本Q
Q
-正是从[0-9]{5}
到0
范围内的5位(由于5
){5}
-文字连字符-
-从[0-9]
到0
5
-又是一个单词边界\b
试试看,否则你甚至不知道你是否可以自己写。OK刚找到一个生成器!谢谢
preg\u match\u all('~Q\d{4}-\d~,“Q05546-8 XXX Q13323-0”,$output,preg\u PATTERN\u ORDER);
应该是\d{5}-\d
。。。
Array
(
[0] => Array
(
[0] => Q05546-8
[1] => Q13323-0
)
)