Ne istediğinizi% 100 emin değilim, ama bu [kelime1] bakmak ve [kelime2] ve hem de hat üzerinde yalnızca onları kaldırır:
$line = preg_replace('/word1(.*)word2/', '$1', $line);
Bu yöntem, kısmi sözcükleri maç olabilir, ve ekstra boşluk ile sol olabilir. Biraz daha iyi olurdu:
$line = preg_replace('/\s?word1\b(.*)\s?word2\b/', '$1', $line);
Bu da kelime sınırları ve boşluk kullanarak bütün kelimeler olarak uyumlu olmasını sağlar. Ekstra alan tüketilir ki ben bir tarafta boşluk kullanmayın. O sadece her kelimenin her iki tarafına \b
kullanmak umurumda değil eğer.
İkinci olgu, satırın başlangıcına ilk parantezli ifade taşır:
$line = preg_replace('/(.*)(\(.*?\))/', '$2 $1', $line);
Edit:
Sizi örnek gördükten sonra, ben seni istiyorum:
$line = preg_replace('/^\[Scene\].*/', '', $line);
$line = preg_replace('/\[\.*?\]\s+(.*)(\[.*?\])/', '$2 $1');
$line = preg_replace('/(.*)\s+(\(.*?\))/', '$2 $1');