2009-09-30 17 views
5

मुझे एक अलग लेकिन बड़ी संख्या में सफेद जगह के साथ टेक्स्ट की एक पंक्ति को बाहर निकालना होगा। मैं एक लूप करने और व्हाइटस्पेस को $ foo जोड़ने का एक जंक्य तरीका समझ सकता हूं, फिर उसे टेक्स्ट में विभाजित कर सकता हूं, लेकिन यह एक सुरुचिपूर्ण समाधान नहीं है।मैं पर्ल में बहुत सारे व्हाइटस्पेस कैसे डालूं?

+1

आप * के रूप में कुछ इस तरह से पूछना चाहिए "मैं पर्ल/regex में व्हाइटस्पेस की एक निश्चित राशि डालूँ? "* ... –

+1

आपके शीर्षक में" रेगेक्स "शब्द क्या है? – innaM

+0

मैंने शीर्षक में रेगेक्स शामिल किया है (ध्यान दें कि इसे स्पष्टता के लिए संपादित किया गया है) क्योंकि मुझे लगता है कि 10000 रिक्त स्थान के ऑर्डर प्राप्त करने के लिए 10 रिक्त स्थान के साथ अंतरिक्ष को दो बार स्थानांतरित करने का एक हैकी तरीका हो सकता है। – Timo

उत्तर

29

मुझे थोड़ी अधिक जानकारी चाहिए। क्या आप बस कुछ पाठ में शामिल हैं या आपको इसे सम्मिलित करने की आवश्यकता है?

किसी भी तरह से, पुनरावृत्ति पाने का एक आसान तरीका पर्ल के 'एक्स' ऑपरेटर है, उदाहरण के लिए।

" " x 20000 

आपको 20K रिक्त स्थान देगा। अच्छी तरह से अध्ययन कर यदि आप भाषा के बारे में गंभीर हैं लायक -

तो एक मौजूदा स्ट्रिंग ($ s कहते हैं) है और आप 20K के लिए यह पैड बाहर करना चाहते हैं,

$s .= (" " x (20000 - length($s))) 

BTW कोशिश, पर्ल an extensive set of operators है।

अद्यतन: मूल रूप से पूछे जाने वाले प्रश्न (इसे तब से संपादित किया गया है) ने 20K रिक्त स्थान के बारे में पूछा, "बहुत सारे सफेद जगह" नहीं, इसलिए मेरे उत्तर में 20K। बाहर $var सफेद स्थान के साथ तो यह

उदाहरण के लिए, पैड करने के लिए:

+0

धन्यवाद, यह पूरी तरह से काम करता है। मुझे पूरा भरोसा था कि पेर्ल को ऐसा करने के लिए एक शानदार समाधान होगा, लेकिन मेरे गुगल कौशल ने मुझे नीचे जाने दिया (हालांकि मुझे वह साइट मिली है जो आप उल्लेख करते हैं)। – Timo

+0

मैंने इसे अधिक आम तौर पर उपयोगी बनाने के लिए संपादित किया। "20000" अभी भी मेरी राय में "बहुत" के रूप में योग्यता प्राप्त करता है। क्षमा करें अगर किसी के लिए आपके मामले में मिला है। –

+0

मेरे मामले पर कोई भी नहीं मिला और मुझे लगता है कि आपके संपादन समझ में आते हैं। मैं थोड़ा चिंतित था कि जो कोई बाद में आता है वह सोच सकता है कि मेरे कोड में मुझे 20K क्यों मिला है जब इसका कोई और उल्लेख नहीं है। सिर्फ किसी की समस्या को हल न करने के लिए, लेकिन भविष्य के पाठकों के लिए उपयोगी प्रश्नोत्तर की एक संग्रह बनाने के एसओ आचारों को बनाए रखने की कोशिश कर रहा है। – dave

4

'एक्स' ऑपरेटर का उपयोग करें:

print ' ' x 20000; 
10

आप हमेशा स्ट्रिंग एक निश्चित लंबाई आप sprintf उपयोग कर सकते हैं होना चाहते हैं 20,000 वर्ण लंबा उपयोग:

$var = sprintf("%-20000s",$var); 
+0

स्वच्छ दृष्टिकोण। और यदि आप पहले रिक्त स्थान चाहते हैं, तो डैश हटा दें। – FlorianB

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