1

次のように構築された文字列があります。

[propertyname]=[value]

thepropertynameと theは両方とも、value一重引用符または二重引用符でカプセル化できます。

したがって、次のような文字列を受け取ることができます。

"height"='max'

また:

'height'='max'

propertynameとの両方がvalue同じタイプの引用符でカプセル化されている限り。

私がする必要があるのは、引用符を削除することです。ただし、propertynameand 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つの呼び出しでこれを処理できるはずであることを考えると、それは厄介な回避策です...

問題は何ですか?

4

2 に答える 2