Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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 preg_match检测到特定字符后,从字符串中获取特定数字_Php_Regex - Fatal编程技术网

Php preg_match检测到特定字符后,从字符串中获取特定数字

Php preg_match检测到特定字符后,从字符串中获取特定数字,php,regex,Php,Regex,我想在字符串NPWP之后剪切数字,然后取所有数字 有时我有这样的字符串: $valueDetail['DTL02CNA'] = NPWP:016386112436000 JALAN ELANG DESA SUKAHATI CITEUREUP BOGOR 16810, INDONESIA TEL:+62(21)8765105 $valueDetail['DTL02CNA'] = NPWP 314633389431000 DELTA SILICON INDUSTRIALL PARK 3 JL PI

我想在字符串NPWP之后剪切数字,然后取所有数字

有时我有这样的字符串:

$valueDetail['DTL02CNA'] = NPWP:016386112436000 JALAN ELANG DESA SUKAHATI CITEUREUP BOGOR 16810, INDONESIA TEL:+62(21)8765105
$valueDetail['DTL02CNA'] = NPWP 314633389431000 DELTA SILICON INDUSTRIALL PARK 3 JL PINANG F 16/25A, CICAU CIKARANG PUSAT, CITY: BEKASI, JB 17550 INDONESIA
016386112436000
314633389431000
有时像这样:

$valueDetail['DTL02CNA'] = NPWP:016386112436000 JALAN ELANG DESA SUKAHATI CITEUREUP BOGOR 16810, INDONESIA TEL:+62(21)8765105
$valueDetail['DTL02CNA'] = NPWP 314633389431000 DELTA SILICON INDUSTRIALL PARK 3 JL PINANG F 16/25A, CICAU CIKARANG PUSAT, CITY: BEKASI, JB 17550 INDONESIA
016386112436000
314633389431000
根据上面的例子,我需要这样的结果:

$valueDetail['DTL02CNA'] = NPWP:016386112436000 JALAN ELANG DESA SUKAHATI CITEUREUP BOGOR 16810, INDONESIA TEL:+62(21)8765105
$valueDetail['DTL02CNA'] = NPWP 314633389431000 DELTA SILICON INDUSTRIALL PARK 3 JL PINANG F 16/25A, CICAU CIKARANG PUSAT, CITY: BEKASI, JB 17550 INDONESIA
016386112436000
314633389431000
现在,我只知道如何识别它

<?= preg_match("/npwp/i", $valueDetail['DTL02CNA'] ) ?  '<label class="label label-success">NPWP Is Exist</label>' : 'Tidak Ada NPWP' ?> <br>
您可以使用正则表达式


如果字符串NPWP和数字是精确长度,只需使用substr


匹配从字符串^开始,匹配NPWP,后跟可选冒号:?和零个或多个空白字符\s*

然后您可以使用\K重置报告匹配的起点,并匹配一个或多个数字\d+:

另一个选项是匹配第一个捕获组中的捕获值\d+:


风险太大,有时客户会先写下这些句子:NPWP:,NPWP,NPWP:。有时在句末。。。。。。NPWP:@FadlyDzil然后您可以使用不区分大小写的标志/i,例如,兄弟,您得到了错误。注意:未找到结束分隔符。阅读有关如何格式化$pattern的文档。