-3

我有一个字符串,

   DXD RO 012345 SMITH JOHN 094 5251 907 REQ 008313 M 

我正在尝试提取可能有 5-15 位数字的电话号码,其中包含未知数量的空格。我还需要最后一个字母(性别)和名字。

这样做的确切模式是什么?

4

2 回答 2

0
$subject = "DXD RO 012345 SMITH JOHN 094 5251 907 REQ 008313 M";
$pattern = "/[a-z]+\s+[a-z]+\s+\d+\s+[^\d]+\s*(\d+\s*\d+\s*\d+)\s+[a-z\-]+\s+\d+\s+([a-z])/i";

preg_match($pattern, $subject, $matches);

$matches[1] 包含电话号码,$matches[2] 包含性别。

为此,我假设第 1、2、4、5 和 9 列仅包含字母,而 3、6、7、8、10 仅包含数字(性别必须是字母)。

但是,如果您需要数字和字母,只需将[az]\d替换为[a-z0-9]用于相应的列(\s是空格)

于 2012-09-19T08:56:07.820 回答
0

对于手机您可以尝试:

$subject = "DXD RO 012345 SMITH JOHN 094 5251 907 REQ 008313 M";
preg_match_all("/([0-9]|\s).+{5,15}(\s)/si", $subjectt, $matches);
于 2012-09-19T08:58:29.447 回答