这些word1和word2在括号中
想要删除整行依赖于word2
[word1] something-line-text [word2] some text again
想要用另一个取代某些文字取决于word2
[word1] something-line-text [word2] some text again
into
REPLCACEDTEXT something-line-text some text again
some line text (something/something)
into
(something/something) some line text
答案 0 :(得分:0)
我不是100%确定你想要什么,但是这会找到[word1]和[word2]并且只有当两者都在线时才删除它们:
$line = preg_replace('/word1(.*)word2/', '$1', $line);
此方法可以匹配部分单词,您可能会留下额外的空格。稍微好一点就是:
$line = preg_replace('/\s?word1\b(.*)\s?word2\b/', '$1', $line);
这确保它们使用单词边界和空格作为整个单词匹配。我在一侧使用空间,以便消耗额外的空间。如果你不在乎,只需在每个单词的两边使用\b
。
第二种情况,将第一个带括号的短语移动到行的开头:
$line = preg_replace('/(.*)(\(.*?\))/', '$2 $1', $line);
修改强>
看到你的例子之后,我想你想要:
$line = preg_replace('/^\[Scene\].*/', '', $line);
$line = preg_replace('/\[\.*?\]\s+(.*)(\[.*?\])/', '$2 $1');
$line = preg_replace('/(.*)\s+(\(.*?\))/', '$2 $1');