次のように構築された文字列があります。
[propertyname]=[value]
thepropertyname
と theは両方とも、value
一重引用符または二重引用符でカプセル化できます。
したがって、次のような文字列を受け取ることができます。
"height"='max'
また:
'height'='max'
propertyname
との両方がvalue
同じタイプの引用符でカプセル化されている限り。
私がする必要があるのは、引用符を削除することです。ただし、propertyname
and value
!の周りだけです。以下も有効な文字列である可能性が非常に高いためです。
"blaat"="Some 'random' blaat"
最終結果は次のようになります。
blaat=Some 'random' blaat
私は動作する次の正規表現を持っています。しかし、二重引用符または一重引用符をチェックしている場合にのみ機能します。それらを|
演算子と結合しようとすると、もう機能しません。
<?php
$string = '"height"=\'something "else" in here\'';
//echo preg_replace ( '#"(.*?)"#', '$1', $string );
//echo preg_replace ( '#\'(.*?)\'#', '$1', $string );
echo preg_replace ( '#("(.*?)"|\'(.*?)\')#', '$1', $string );
?>
だから私は単純に2つのpreg_replace
呼び出しを行うことができましたが、正規表現が1つの呼び出しでこれを処理できるはずであることを考えると、それは厄介な回避策です...
問題は何ですか?