簡體   English   中英

PHP:使用正則表達式查找字符串中的數組模式

[英]PHP : Find array pattern in string using regex

我有一個像這樣的字符串,它是數組模式:

["foo","bar","bra bra","xxx123"]

我如何獲取foobarbra braxxx123模式為["","",""]

從php 5.4開始,這是執行數組的一種簡便方法。

參見: http : //docs.php.net/manual/en/language.types.array.php

具體報價:

從PHP 5.4開始,您還可以使用短數組語法,該語法用[]替換array()。

因此,基本方法類似於任何其他數組:

$arr = ["foo","bar"];

foreach($arr AS $arg){
    echo $arg; //you can add your logic here for comma seperating or beautifying
}

您可以不使用正則表達式:

$result = explode('","', trim($str, '[]"'));

或使用正則表達式:

if (preg_match_all('~"([^"]*)"~', $str, $m))
    $result = $m[1];

或用於處理轉義引號的正則表達式:

if (preg_match_all('~"([^"\\\]*(?s:\\\.[^"\\\]*)*)"~', $str, $m))
    $result = $m[1];

我懷疑正則表達式可能是錯誤的工具-嘗試explode

$string='["foo","bar","bra bra","xxx123"]';

//Remove start/end
if (substr($string,0,2)!='["') die('Malformed start!');
if (substr($string,-2)!='"]') die('Malformed end!');
$string=substr($string, 2, -2);
//Now explode
$array=explode('","', $string);

print_r($array);

暫無
暫無

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

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