簡體   English   中英

pregmatch分開的數字和字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM