このコードは正常に実行されています。 $ array [1]は列名を返しました。PHP複数の異なる正規表現
//My String
$string = '<input value="{#Quantity#}" type="number" />';
preg_match_all('/{#(.*)#\}/i', $text, $array);
print_r($array);
/*
Returned :
Array
(
[0] => Array
(
[0] => {#Quantity#}
)
[1] => Array
(
[0] => Quantity
)
)
*/
ただし、テキストに列名がさらにある場合。それが動作していません。
$string = '<input value="{#Quantity#}" data-id="{#Id#}" type="number" />';
preg_match_all('/{#(.*)#\}/i', $text, $array);
print_r($array);
/*
Returned :
Array
(
[0] => Array
(
[0] => {#Quantity#}" data-id="{#Id#}
)
[1] => Array
(
[0] => Quantity#}" data-id="{#Id
)
)
*/
は、私がどのように正規表現があるべきこの配列
Array
(
[0] => Array
(
[0] => {#Quantity#}" data-id="{#Id#}
)
[1] => Array
(
[0] => Quantity
[1] => Id
)
)
にしたいですか? だから、どうすればこの問題を解決できますか?
これは良い答えですが、この式では「i」スイッチが冗長ではありませんか? –
https://translate.google.com/#tr/en/eyvallah%20karde%C5%9Fim :) –
この単純なケースでは、無視できるほどの差はありません。しかし、遅延マッチングを使用するとパフォーマンスが低下します。参照してください理由の説明については、http://www.regular-expressions.info/repeat.html#lazyを参照してください。 – Luke