Php preg_match检测到特定字符后,从字符串中获取特定数字
我想在字符串NPWP之后剪切数字,然后取所有数字 有时我有这样的字符串: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
$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的文档。