正規表現に基づいて文字列を分割しようとしていましたが、分割したテキストを保持することにも関心があります。
php > var_dump(preg_split("/(\^)/","category=Telecommunications & CATV^ORcategory!=ORtest^caused_byISEMPTY^EQ"), null, PREG_SPLIT_DELIM_CAPTURE);
array(4) {
[0]=> string(34) "category=Telecommunications & CATV"
[1]=> string(18) "ORcategory!=ORtest"
[2]=> string(16) "caused_byISEMPTY"
[3]=> string(2) "EQ"
}
NULL
int(2)
私が理解していないのは、なぜ次のような配列を取得できないのかということです。
array(4) {
[0]=> "category=Telecommunications & CATV"
[1]=> "^"
[2]=> "ORcategory!=ORtest"
[3]=> "^"
[4]=> "caused_byISEMPTY"
[5]=> "^"
[6]=> "EQ"
}
さらに、「^OR」と「^」に一致するように正規表現を変更するにはどうすればよいですか。次のような後読みアサーションで問題が発生していました。
$regexp = "/(?<=\^)OR|\^/";