我有一个字符串,
DXD RO 012345 SMITH JOHN 094 5251 907 REQ 008313 M
我正在尝试提取可能有 5-15 位数字的电话号码,其中包含未知数量的空格。我还需要最后一个字母(性别)和名字。
这样做的确切模式是什么?
我有一个字符串,
DXD RO 012345 SMITH JOHN 094 5251 907 REQ 008313 M
我正在尝试提取可能有 5-15 位数字的电话号码,其中包含未知数量的空格。我还需要最后一个字母(性别)和名字。
这样做的确切模式是什么?
$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是空格)
对于手机您可以尝试:
$subject = "DXD RO 012345 SMITH JOHN 094 5251 907 REQ 008313 M";
preg_match_all("/([0-9]|\s).+{5,15}(\s)/si", $subjectt, $matches);