我有一个字符串,
DXD RO 012345 SMITH JOHN 094 5251 907 REQ 008313 M
我正在尝试提取电话号码,该电话号码可能包含5到15位数字,但未知空白量。我还需要最后一个字母(性别)和名字。
这样做的确切方法是什么?
答案 0 :(得分: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] < / strong>表示相应列( \ s 是空格)
答案 1 :(得分: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);