trim पर्ल में

कुछ प्रोग्रामिंग भाषाओं में वहाँ है एक निर्मित में समारोह trim()जो की अनुमति देता है आप को दूर करने के लिए रिक्त स्थान से शुरुआत की और से ट्राम लाइन । उदाहरण के लिए, अगर वहाँ है स्ट्रिंग ' asdf ', समारोह trim() बनाने के लिए यह एक स्ट्रिंग 'asdf'. (शब्द "ट्रिम" अनुवाद किया जा सकता करने के लिए के रूप में अंग्रेजी "कट")

में पर्ल प्रोग्रामिंग भाषा नहीं है निर्मित में समारोह trim(), लेकिन निकालें रिक्त स्थान से शुरुआत और पंक्ति के अंत के बिना संभव है । यहाँ एक उदाहरण है पर्ल प्रोग्राम को हटा जो शुरू और अंत रिक्त स्थान से एक स्ट्रिंग:

▶ Run
#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

my $str = ' asdf   ';

$str =~ s/^\s+|\s+$//g;

print Dumper $str;

इस कार्यक्रम प्रदर्शित करेगा:

$VAR1 = 'asdf';

यह कैसे काम करता है

बदलने के लिए लाइन का उपयोग करता है एक नियमित अभिव्यक्ति है । यहाँ एक सरल उदाहरण के लिए एक नियमित अभिव्यक्ति है, जो परिवर्तन लाइन: $str =~ s/BEFORE/AFTER/;:

  • $str — आप पहली चर निर्दिष्ट करें, जो करने के लिए आप चाहते हैं को लागू करने के लिए एक नियमित अभिव्यक्ति
  • =~ — इस ऑपरेटर पर लागू होता है, नियमित रूप से अभिव्यक्ति निर्दिष्ट करने के लिए सही करने के लिए यह संकेत दिया है कि क्या पर छोड़ दिया
  • s/BEFORE/AFTER/ — यह नियमित रूप से अभिव्यक्ति के प्रतिस्थापन s/, कहते हैं, यह की जरूरत है प्रतिस्थापित करने के लिए BEFORE पर AFTER

हमारे उदाहरण में, नियमित अभिव्यक्ति है थोड़ा और अधिक जटिल: s/^\s+|\s+$//g; यह कहते हैं कि सब कुछ मिलता है कि ^\s+|\s+$ द्वारा प्रतिस्थापित किया जाना चाहिए एक खाली लाइन । के अंत में नियमित रूप से अभिव्यक्ति अभी भी वहाँ है और संशोधक /gहै, जो कहते हैं आप की जरूरत नहीं करने के लिए रोक के बाद पहली बार प्रतिस्थापन, और जरूरत के लिए विश्व स्तर पर जगह ले सभी मैच स्ट्रिंग में.

^\s+|\s+$. वहाँ रहे हैं निम्नलिखित के टुकड़े:

  • ^ का मतलब है की शुरुआत की लाइन
  • \s+ — इसका मतलब है एक या एक से अधिक रहितसफेद चरित्र (\s का मतलब है एक अंतरिक्ष चरित्र है, और इस पर हस्ताक्षर + का मतलब है एक या एक से अधिक)
  • | का मतलब है — तार्किक या
  • $ का मतलब है — लाइन के अंत

यानी ^\s+|\s+$ का मतलब है कि सभी खाली स्थान वर्ण की शुरुआत में लाइन या सभी सफेद अंतरिक्ष में कर रहे हैं कि पात्रों के अंत में एक पंक्ति में हैं. और इन प्रतीकों पाया द्वारा प्रतिस्थापित एक खाली स्ट्रिंग.

अक्षर

नियमित अभिव्यक्ति $str =~ s/^\s+|\s+$//g; से हटा चर न केवल रिक्त स्थान में शुरुआत और अंत है, और सभी को हटा रहितसफेद. टैब वर्ण (\t), हायफ़न चरित्र पर अगली पंक्ति (\n), इस सब के सब हटा दिया जाएगा । यहाँ एक उदाहरण है जहां यह पता चलता है:

▶ Run
#!/usr/bin/perl

use utf8;
use strict;
use warnings;
use Data::Dumper;

my $str = " \t \n asdf \n\n \t ";

$str =~ s/^\s+|\s+$//g;

print Dumper $str;

यूनिकोड में वहाँ रहे हैं कई अक्षर से संकेत मिलता है कि रिक्त स्थान है. \sका मतलब इनमें से कोई भी अक्षर.

उपयोग के पुस्तकालयों

वहाँ रहे हैं विशेष पुस्तकालयों की अनुमति है, जो आप को दूर करने के लिए प्रारंभिक और अनुगामी रिक्त स्थान से एक स्ट्रिंग, के लिए उदाहरण:

लेकिन इन पुस्तकालयों नहीं कर रहे हैं के साथ भेज दिया पर्ल, वे की जरूरत है डाल करने के लिए इसके अलावा में. वहाँ रहे हैं स्थितियों है कि इसे और अधिक सुविधाजनक है नहीं करने के लिए पुस्तकालय का उपयोग, और करने के लिए अपने खुद के कोड लिखने को हटाने के लिए रिक्त स्थान से शुरुआत और पंक्ति के अंत में.

अन्य लेख