これは、私がスクレイピングした文字列のごく一部です:
SEPVALAjazz(音楽)SEPVALC5.59SEPVALAlatin(音楽)SEPVALAcountry(音楽)SEPVALC6.70SEPVALArock(音楽)SEPVALC5.89SEPVALAdance(音楽)SEPVALAworld(音楽)SEPVALC6.70
「SEPVALA」と「SEPVALC」の値を挿入するために、正規表現で文字列を操作しました。"SEPVALA"と"(music)SEPVALA"というパターンの間の文字列を、テキスト内のどこからでも削除したいと考えています。上記の例では、これにより「latin」と「dance」が削除されます。
望ましい結果は次のようになります。
SEPVALAjazz(音楽)SEPVALC5.59SEPVALAcountry(音楽)SEPVALC6.70SEPVALArock(音楽)SEPVALC5.89SEPVALAworld(音楽)SEPVALC6.70
現時点で実装しているコードは次のとおりです。
$pattern="/SEPVALA(.+?)\(music\)SEPVALA/";
$replacement="SEPVALA";
$newstring=preg_replace($pattern, $replacement, $originalstring );
ただし、正規表現エンジンが最初の「SEPVALA」を取得し、この時点から「(music)SEPVALA」までのすべてを削除するため、これは文字列をあまりにも多く削除します(そうあるべきです!) 「 (music) SEPVALA"は、問題のあるテキストを削除し、次の"SEPVALA"で停止してから、次の"(music) SEPVALA"の一致に進みます。またはこれを達成するための他の方法。どうもありがとう。