2017-06-04 10 views
0

テキストがあり、最初の取得後にすべてを削除したいだけです。私は、 "。\ s"と少なくとも私が改行を繰り返すことを繰り返したことを理解しました。しかし、これにはもっと柔軟で乾燥した解決策があることを願っています。preg_replaceすべて:テキストと改行

最速最も遅いから発注
$subject = "SomeText()         asaas 
DFDFDFD 

dsdsds 

dsdsds"; 
$pattern = "#\).*\s*.*\s*.*\s*.*#" ; 
$replacement = ")"; 
$newText = preg_replace($pattern, $replacement, $subject); 
Utils_Echo::myEcho($subject); 
Utils_Echo::myEcho($newText); 


$pattern = "#\)[.\s]*#"; //I hoped something like this would work but it could not figure it out. Can you show me a way? 

答えて

0

:正規表現なし

preg_match最も明白な

$newText = (false !== $pos = strpos($subject, ')')) ? substr($subject, 0, $pos + 1) 
                 : $subject; 

あなたが代わりにあなたがいない何を置き換えるので欲しいものを取ります望む

$newText = preg_match('~[^)]*\)~', $subject, $m) ? $m[0] : $subject; 

S修飾子はドットが改行文字を一致させることができます

$newText = preg_replace('~\).*~s', ')', $subject); 
+0

すべての3つの答えは、自分のスキルをinprovingで私を助けて。ありがとうございました。 –

関連する問題