2016-04-17 11 views
1

私は次の文字列を持っていて、かっこ内にあるかどうかにかかわらず "two three"を取り除きたいとします。いくつかの文字が含まれているかどうかにかかわらず、正規表現の一致文字列を文字列に含めるにはどうすればよいですか?

one two three four 
one (two three) four 
one (two three) four 
one (two three four 
one two three) four 
one (two three four 
one two three) four 

私は

one four 

にこれらを削除したい、私はそれを試していないが、運。

$str = preg_replace('/(\(|)two(.*?)three(|\))\S+ */i', '', $str); 

答えて

2

あなたは、この正規表現を使用することができます。

(\(? ?two three ?\)?) 

demo

+0

ありがとうございます、あなたは今日のヒーローです! – rasputin

0

ポイントは、スペースや文字列+括弧か+スペース+の先頭を一致させることである+スペース「を取り除くための文字列を」 +カッコかどうか、空白か文字列の終わり。

$str = preg_replace('/(^|\s+)\(?\s*the string to strip\s*\)?(\s+|$)/i', ' ', $str); 

これにより、最初または最後にスペースが残ることがありますが、後でトリミングすることができます。私はそれが最も簡単な解決策だと思います。

関連する問題