简体   繁体   English

PHP preg_match函数从字符串获取电话号码

[英]PHP preg_match function get phone number from string

Here is my PHP code. 这是我的PHP代码。 I'm needing a regular expression to get my desired output. 我需要一个正则表达式以获取所需的输出。

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';

Expected Output: 631741-4498 预期产量: 631741-4498

$str = 'abc:123,phoneNumber:+123 423, fdsfdsf, hgjhtg,juiy';

Expected Output: +123 423 预期输出: +123 423

$str = 'abc:123,phoneNumber:+(123) 423-727, fdsfdsf, hgjhtg,juiy';

Expected Output: +(123) 423-727 预期输出: +(123)423-727

Here's what I've tried 这是我尝试过的

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';
$str = str_replace(" ","",$str);
preg_match('/phoneNumber:\s*(.*)/', $str, $matches);

Change your regular expression to /(\\d+ \\d+\\-\\d+)/ 将您的正则表达式更改为/(\\d+ \\d+\\-\\d+)/

<?php

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';
preg_match('/(\d+ \d+\-\d+)/', $str, $matches);

print_r($matches[0]);

Live preview 实时预览

Edit 编辑

Change your regular expression to /phoneNumber:[a-zA-Z0-9\\ \\+\\-(\\(\\))]+/ 将您的正则表达式更改为/phoneNumber:[a-zA-Z0-9\\ \\+\\-(\\(\\))]+/

<?php

$str = 'abc:123,phoneNumber:631 741-4498, fdsfdsf, hgjhtg,juiy';
preg_match('/phoneNumber:[a-zA-Z0-9\ \+\-(\(\))]+/', $str, $matches);

print_r( str_replace("phoneNumber:", "", $matches[0]) );

Live preview 实时预览

Live preview - all outputs 实时预览-所有输出

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM