2016-07-01 15 views
0

私はPHPで、この文字列から単語を抽出しようとしています:正規表現きれいな結果

$string= '\'banana\', "orange", "apple"'; 

このパターンの使い方:

/([\'"])(.*?)\1/ 

しかし、それは私にこの結果を与える:

array(3) { 
    [0] array(3) { 
     [0] "'banana'" 
     [1] ""orange"" 
     [2] ""apple"" 
    } 
    [1] array(3) { 
     [0] "'" 
     [1] "" 
     [2] "" 
    } 
    [2] array(3) { 
     [0] "banana" 
     [1] "orange" 
     [2] "apple" 
    } 
} 

これらは、次の方法でクリーニングすることができます:

array(3) { 
    [0] "banana" 
    [1] "orange" 
    [2] "apple" 
} 

ありがとうございました。

答えて

1

正規表現を使用すると、\w正規表現を使用して単語文字を抽出することができます。あなたは、文字列をカットする場所 そして、グローバルフラグと一緒に入れて、そして私はあなたが

this example

+0

それは素晴らしいです!出来た。それは、これを返さ: アレイ(1){ [0]アレイ(3){ [0]が "バナナ" [1] "ORANGE" [2] "APPLE" が } } のみにそれが可能です1つのレベルを返しますか? – Roy5

+0

Regexは正しいことのために使用されていると多くのレベルで素晴らしいです:)私はそれを学ぶためにあなたの自由な時間の間に1,2時間を取ることをお勧めします。そこには多くのリソースがあります、あなたの好きなものを選ぶだけです。 – SWLim

+0

Btw、「1つのレベルを返す」とはどういう意味ですか? 'banana '、' orange'、 'apple '' 'banana orange apple'を返すことを意味しますか?もしそうなら、あなたができることは配列の 'join'だけです。 – SWLim

0

使用preg_splitを参照してください:)欲しいものを得るだろうと考えていると、削除したいすべてを説明し、空の部分をフィルタリングするフラグPREG_SPLIT_NO_EMPTYを追加します。

明らかに、この方法では、各項目が同じ種類の引用符で囲まれているかどうかは確認されませんが、本当に必要ですか?

関連する問題