簡體   English   中英

如何使用正則表達式進行分割

[英]How to split using the regular expressions

為了拆分給定的符號,我最初使用

list($pdf_platform_size, $pdf_capacity ,$pdf_accuracy) = split("[a-z-][a-z-]", $pdf_select_specification);

當給定的字符串是6 x 3m-20t-2kg時,它用來將給定的字符串分成6x3m( $ pdf_platform_size) ,20t( $ pdf_capacity )和2kg( $ pdf_accuracy)

但是現在當我升級到PHP 7時,不推薦使用split.preg_split()的用法似乎不起作用。 我嘗試了list($a,$b,$c) = preg_split("/[az-][az-]/", $x);

其中$ x是6 x 3m-20t-2kg

但是沒有得到理想的結果。在這里尋求幫助

如果僅在-上進行拆分,則不需要正則表達式。 使用explode代替:

[$a, $b, $c] = explode('-', '6x3m-20t-2kg');
echo $a; // 6x3m

注意:PHP 7.1附帶了速記數組銷毀功能

您可以使用explode

list($pdf_platform_size, $pdf_capacity ,$pdf_accuracy) = array_map('trim', explode(' - ', $pdf_select_specification));

如果您希望platform_size沒有這些空格,請在此之后使用trim

如前所述,您可以使用explode ,但也可以使用preg_split

$x = '6 x 3m - 20t - 2kg';
list($a,$b,$c) = preg_split("/[-]/", $x);

如果存在空格,則可能需要trim()結果

如果需要值,可以使用preg_match_all提取它

$x = '6 x 3m - 20t - 2kg';
preg_match_all('/(\d)+[ ]*x[ ]*(\d)+m[ ]*-[ ]*(\d)+t[ ]*-[ ]*(\d)kg/', $x, $dump);
var_dump($dump);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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