[英]pregmatch separate number and character
BC1024,AB124,CBC2548,
使用預匹配將數字和字符分開,
為此,我嘗試了這個preg match表達式,但是效果不佳,
preg_match_all('/(?P\w+): (?P\d+)/', $flight_code_no, $matches,PREG_PATTERN_ORDER);
我想輸出為
Array ( [0] => BC1024: 2008 [name] => BC [1] => BC [digit] => 1024 [2] => 1024 )
但是我的預備比賽不起作用....
只是推空數組,
preg_match('/(?<name>[A-Z]+)(?<digit>\d+)/', 'BC1024', $result);
這給
Array ( [0] => BC1024 [name] => BC [1] => BC [digit] => 1024 [2] => 1024 )
只是為了表明您不需要preg_match來分割像這樣的簡單字符串:
list($name,$digit) = sscanf($flight_code_no,'%[A-Z]%d');
運行
<?php
foreach (array("BC1024", "AB124","CBC2548") as $v) {
preg_match_all("/(?P<name>[A-Z]+)(?P<digit>\d+)/", $v, $matches);
var_dump($matches);
}
輸出(刪除了一些換行符以提高釀造性)
array(5) {
[0]=> array(1) { [0]=> string(6) "BC1024" }
["name"]=> array(1) { [0]=> string(2) "BC" }
[1]=> array(1) { [0]=> string(2) "BC" }
["digit"]=> array(1) { [0]=> string(4) "1024" }
[2]=> array(1) { [0]=> string(4) "1024" }
}
array(5) {
[0]=> array(1) { [0]=> string(5) "AB124" }
["name"]=> array(1) { [0]=> string(2) "AB" }
[1]=> array(1) { [0]=> string(2) "AB" }
["digit"]=> array(1) { [0]=> string(3) "124" }
[2]=> array(1) { [0]=> string(3) "124" }
}
array(5) {
[0]=> array(1) { [0]=> string(7) "CBC2548" }
["name"]=> array(1) { [0]=> string(3) "CBC" }
[1]=> array(1) { [0]=> string(3) "CBC" }
["digit"]=> array(1) { [0]=> string(4) "2548" }
[2]=> array(1) { [0]=> string(4) "2548" }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.