2010-10-29 10 views
6

मैं थोड़ा फंस गया हूं। मैं एक नई लाइन के साथ एक पंक्ति में कई नई लाइनों को कैसे हटा सकता हूं। एक-दूसरे के बगल में 20 न्यूलाइन तक कुछ भी हो सकता है। उदाहरण के लिएPHP कई नई लाइनें

जेम्स ने कहा हैलो \ n \ n \ n \ n टेस्ट \ N टेस्ट दो \ n \ n

अंत चाहेंगे के रूप में:

जेम्स ने कहा हैलो \ N टेस्ट \ N टेस्ट दो \ n

उत्तर

10

प्रयास करें यह एक:

$fixed_text = preg_replace("\n(\s*\n)+", "\n", $text_to_fix); 

कौन सा एक प्रारंभिक न्यू लाइन से मेल खाना चाहिए, तो कम से कम खाली स्थान के की किसी भी राशि के एक समूह में से एक:

$str = "Hello\n\n\n\n\nWorld\n\n\nHow\nAre\n\nYou?"; 
$str = preg_replace("/\n+/", "\n", $str); 
print($str); 
1
$fixed_text = preg_replace("\n+", "\n", $text_to_fix); 

यह करना चाहिए, यह सोचते हैं कि लगातार नई-पंक्तियों को सही मायने में लगातार कर रहे हैं और किसी भी खाली स्थान के (टैब, रिक्त स्थान, कैरिएज रिटर्न, आदि ...) उन दोनों के बीच नहीं है।

0
$str = 'James said hello\n\n\n\n Test\n Test two\n\n'; 
echo preg_replace('{(\\\n)\1+}','$1',$str); 
4

मार्क बी के जवाब पर में सुधार इसके बाद एक नई लाइन के बाद और इसे एक ही नई लाइन के साथ बदलें।

संबंधित मुद्दे