37.ÈÏèÑ (NEXT-CHAPTER PREV-CHAPTER CONTENTS)

37.1  ÈèÏ×èÂÚÔÆÚ 
37.2  ÈèÏÚÏÌèË 
	37.2.1  Conditional ÔÚ³èÍ 
37.3  Pattern Matching - Regular Expressions 
	37.3.1  ÕÝÏÞ Ô ¤Æè (^,$) 
	37.3.2  ³å§ ËÜ ¤³èÖÏ (.) 
	37.3.3  ¤³èÖÏ ×Þ¸Ü ([,]) 
	37.3.4  ÈÝÆÏÚÔßÂèÂÛ (*,+) 
37.4  ÌáÑ ³Ú ÉÑ 
37.5  ×Ú¡¸å¢ Ìᢠ`ÍÚ' (`|') 


37.1 ÈèÏ×èÂÚÔÆÚ ([37.2] [UP])

# ÈèÏåµèÏÚÌ ÉÚ¦Ñ, ÈÏèÑ interpreter, (ÑÛ´ÆÚ ÕáÖ)


37.2 ÈèÏÚÏÌèË ([37.3] [37.2.1] [37.1] [UP])

ÆÛÌèÆÑÛ´Û ÈÏèÑ ÈèϵèÏÚÌ ¥È³Ú ¤ËÛÔÚÄÆ ³ÏÂÚ Øâ :-

  #!/usr/bin/perl
  print "ÏÚÌ ÏÚÌ!/n";

¦× ÈèÏåµèÏÚÌ ³å ¸ÑÚÆá ÈÏ ÈèÏÃÌ È¢³èÂÛ ³ÌèÈèÍÞ½Ï ³å ÍØ ÊÂÚÆÜ Øâ ³Û ÍØ
¬³ ÈÏèÑ ³Ú ÈèÏåµèÏÚÌ Øâ. ÄèÔÛÂÜÍ È¢³èÂÛ ÌÚÆÜ½Ï ÈÏ 'ÏÚÌ ÏÚÌ!' ÑÛ´ÂÜ Øâ.
'print' ¥ÄáÕ ÌÚÆÜ½Ï ×è³èÏÜÆ ÈÏ ÈØÑá 'ÏÚÌ ÏÚÌ!' ÑÛ´ÂÚ Øâ. ÂÂèèÈÕè¸Ú ÔØ
\n ÑÛ´ÂÚ Øâ, ºå ³Ïè×Ï ³å ×è³èÏÜÆ ÈÏ Æ§ È¢³èÂÛ ÈÏ Ñá ºÚÂÚ Øâ. ÔÚ×èÂÔ
ÌᢠÈÏèÑ Ìᢠ"\n" ³Ú ¤ËÛÈèÏÚÍ Øâ ¬³ ÔÛÕáÖ ¤³èÖÏ ºå Ƨ È¢³èÂÛ ³Ú ×Þ¸³
Øâ. ×áÌܳåÑÆ (;) ÈèÏåµèÏÚÌ ÔÚ³èÍ ³Ü ×ÌÚÈèÂÛ ³Ú ×Þ¸³ Øâ.

ÍÄÛ ¥È ¸ÚØÂá Ø⢠³Û ÆÚÌ ÈÞ¹³Ï ¤ËÛÔÚÄÆ ³ÛÍÚ ºÚÍÚ Âå ÑÛ´ ׳Âá Ø⢠:-

  print "¥È³Ú ÕÝË ÆÚÌ? ";
  $name = ;
  chop $name;
  print "$name, ÏÚÌ ÏÚÌ!\n";

¦×³å ¸ÑÚÆá ÈÏ ×è³èÏÜÆ ÈÏ ÆÛÌèÆÑÛ´Û ÔÚÏèÂÚÑÚÈ ØåµÚ :-

  ¥È³Ú ÕÝË ÆÚÌ : ÌåØÆ ,
                 ------------
  ÌåØÆ, ÏÚÌ ÏÚÌ!

³ÚÏèͳÏèÂÚ ÄèÔÚÏÚ ½Ú¦È ³Ü Øݧ ×Ú̵èÏÜ ÈÄÏá´Ú (underline) ÄèÔÚÏÚ
¤¢³Û Øâ.

¨ÈÏå³è ÈèÏåµèÏÚÌ ÌᢠÄèÔÛÂÜÍ ÔÚ³èÍ Ìá¢,  ³Ú ¤Ïèà Øâ ³Û
³ÌèÈèÍÞ½Ï ¥È³á ÄèÔÚÏÚ ¤ÈÆÚ ÆÚÌ ½Ú¦È ³ÏÆá ³Ü ÈèÏÂܳèÖÚ ³ÏÂÚ Øâ, ÂÃÚ
½Ú¦È ³Ï³á ºÊ ¥È enter ³Ý¢ºÜ ÄÊÚÂá Øâ¢, Âå `' ³Ú ÌÞÑèÍ ØåÂÚ
Øâ ¥È³Ú ½Ú¦È ³ÛÍÚ ØÝ¥ ÆÚÌ. `=' ³Ú ¤Ïèà Øâ ³Û `' ³á ÌÞÑèÍ ³å
³ÌèÈèÍÞ½Ï ¤ÈÆÜ ×èÌßÂÛ Ìᢠϴá. ¦× ×èÌßÂÛ ¤¢Õ ³å `$name' ³ØÚ µÍÚ Øâ.
¤µÑá ÔÚ³èÍ Ìᢠ`chop'³Ú ¤Ïèà Øâ ³Û $name ÌᢠÔÛÄèÍÌÚÆ string ³á ¤¢ÂÛÌ
¤³èÖÏ ³å ¤ÏèÃÚ Ƨ È¢³èÂÛ ×Þ¸³ (\n) ¤³èÖÏ ³å Ø½Ú ÄÛÍÚ ºÚÍ. ³ÚÏèͳÏèÂÚ
ÄèÔÚÏÚ `enter' ³Ý¢ºÜ ÄÊÚÆá ÈÏ ÍØÜ \n ¤³èÖÏ, ÆÚÌ ³á ¤Æè ÌᢠעѵèÆ
Øå ºÚÂÚ Øâ. ¤¢ÂÛÌ ÈèÏåµèÏÚÌ ÔÚ³èÍ ÄèÔÚÏÚ ×è³èÏÜÆ ÈÏ ¥È³á ÆÚÌ ³á ×ÚÃ
¤ËÛÔÚÄÆ ¥ ºÚÂÚ Øâ.

¤ËÜ ØÌÆá ¬³ ÌØÂèÔÈÞÏèÁ ÊÚ ×Ü´Ü :- ³ÌèÈèÍÞ½Ï ³Ü ×èÌßÂÛ Ìᢠ³Ý¹ Ï´ÆÚ
Øå Âå ×èÌßÂÛ ¤¢Õ ³å ¬³ ÆÚÌ ÄÛÍÚ ºÚÂÚ Øâ, ºâ×á $name, ÂÃÚ `=' ÍÚ ¤ÆèÍ
¨ÈÚÍᢠ×á ¨×Ìᢠ³Ý¹ Ï´Ú ºÚ ׳ÂÚ Øâ. ×èÌßÂÛ ¤¢Õ ³Ú ÆÚÌ `$' ×á ÈèÏÚÏ¢Ë
ØåÂÚ Øâ, ÂÃÚ ¦×á variable ËÜ ³ØÂá Øâ¢.

¬³ ×èÌßÂÛ ¤¢Õ ÌᢠÔÛÄèÍÌÚÆ ÌÞÑèÍ ³å ÄÞ×Ïá Ìᢠ×èÃÚÆÚÆèÂÏÛ ³ÛÍÚ ºÚ
׳ÂÚ Øâ :-

  $person = 'ÕèÏÜ '. $name;

ÍØÚ¡ ÈÏ `.' ¬³ operator Øâ ºå Äå strings ³å ºå¿éÂÚ Øâ. ÍØÚ¡ ÈÏ ÆÚÌ
×á ÈÞÏèÔ 'ÕèÏÜ ' ³å ºå¿Ú ºÚÂÚ Øâ. ÂÂÈÕè¸Ú `=' ³á ¤ÆÝ×ÚÏ Æ§ string
³å ¬³ Ƭ ×èÌßÂÛ ¤¢Õ ($person) Ìá¢ Ï´Ú ºÚÂÚ Øâ. ³Û×Ü ×èÌßÂÛ ¤¢Õ ³á
ÌÞÑèÍ ³å ÊÀéÚ ¶½Ú ³Ï ÔÚÈ× ¨×Ü ×èÌßÂÛ ¤¢Õ ÌᢠËÜ Ï´Ú ºÚ ׳ÂÚ Øâ :-

  $name = $name . 'ºÜ';



37.2.1 Conditional ÔÚ³èÍ ([37.3] [37.2] [UP])

ÈèÏåµèÏÚÌ Ìᢠ×èÃÛ ×ËÜ ¥ÄáÕå¢ ³å ³ÌèÈèÍÞ½Ï ¸ÑÚ¬, ÍØ ¥ÔÕèͳ ÆØÜ¢
Øâ. conditional ÔÚ³èÍå ³Ü ×ØÚÍÂÚ ×á, Äå ÍÚ Äå ×á ¤ÅÛ³ ÔÚ³èÍå¢ ³á Êܸ
¸ÍÆ ËÜ ³ÛÍÚ ºÚ ׳ÂÚ Øâ. ¨ÄÚØÏÁÚÏèà ÍÄÛ ³ÚÏèͳÏèÂÚ ³Ú ÆÚÌ `ÏÚÌ' Øâ Âå,
ËÛÆèÆ ¤ËÛÔÚÄÆ ÄÛÍÚ ºÚ ׳ÂÚ Øâ. ¦×³á ÑÛÍá ¨ÈÏå³è ÈèÏåµèÏÚÌ Ìᢠ¤¢ÂÛÌ
ÔÚ³èÍ ³á ×èÃÚÆ ÈÏ ËÛÆèÆ ÔÚ³èÍ ÑÛ´ÆÚ ØåµÚ:-

  if ($name eq 'ÏÚÌ') {
    print "ÆÌ×èÂá $name!\n";
  }
  else { print "$name, ÏÚÌ ÏÚÌ!\n";}

¤Â£ ÍÄÛ `ÏÚÌ' ÆÚ̳ ³ÚÏèͳÏèÂÚ ÈèÏåµèÏÚÌ ¸ÑÚÂÚ Øâ Âå ³Ý¹ ¦× ÂÏØ ³Ú
ÔÚÏèÂÚÑÚÈ ØåµÚ :-

  ¥È³Ú ÕÝË ÆÚÌ? ÏÚÌ 
		----------
  ÆÌ×èÂá ÏÚÌ!

³ÚÏèͳÏèÂÚ ÄèÔÚÏÚ ¤ÆèÍ ÆÚÌ ÊÂÚÆá ÈÏ, ÈØÑá ºâ×Ú ÔÚÏèÂÚÑÚÈ ØÜ ØåµÚ.

¤Â£ conditional ÔÚ³èÍ ³Ú ÏÞÈ Øâ :-

  if () { <ØÚ¡-ÔÚ³èÍ> }
  else { <¤ÆèÍÃÚ-ÔÚ³èÍ> }

¦×³á ¤ÆèÂÏèµÂ  ³Ú ÌÞÑèÍ ÆÛ³ÚÑÚ ºÚÂÚ Øâ. `׸' ¨ÂèÂÏ ¥Æá ÈÏ
<ØÚ¡-ÔÚ³èÍ> ³á ÔÚ³èÍå¢ ³å ¸ÑÚÍÚ ºÚÂÚ Øâ. ¨ÈÏå³è ¨ÄÚØÏÁ Ìᢠ
Øâ :-

  $name eq 'ÏÚÌ'

¦×³Ú ¤Ïèà Øâ $name ×èÌßÂÛ ¤¢Õ ÌᢠÔÛÄèÍÌÚÆ ÌÞÑèÍ ³Ú 'ÏÚÌ' string ×á
ÂÝÑÆÚ ³ÏÆÚ ÂÃÚ ÍÄÛ Ôá ÊÏÚÊÏ (eq) Ø⢠Âå ¨ÂèÂÏ ØÚ¡ ÌᢠÄáÆÚ ¤ÆèÍÃÚ
ÆØÜ¢ Ìá¢.  ³Ú ÏÞÈ Øâ :-

    

ºØÚ¡ ÈÏ  ³á ×èÃÚÆ ÈÏ ¥ ׳Âá Ø⢠:-

  (³) constant :- 'ÏÚÌ', 'ÔÆ', 3, 5.2 ¦ÂèÍÚÄÛ
  (´) ×èÌßÂÛ ¤¢Õ ³Ú ÆÚÌ :- $name, $person ¦ÂèÍÚÄÛ
  (µ) ¤ÆèÍ (ÊÚÄ ÌᢠÊÂÚ¬ ºÚ¬¡µá¢)

 ÄåÆå¢  ÌᢠÂÝÑÆÚ ³ÏÂÚ Øâ  ³á ×èÃÚÆ
ÈÏ ¥ ׳Âá Ø⢠:-

  eq (equal)	expressions Ìᢠstrings ³Ú ¬³×Ú ØåÆÚ
  ne (not equal) expressions Ìᢠstrings ³Ú ¬³×Ú Æ ØåÆÚ

  ==		expresions Ìᢠע´èÍÚ ÊÏÚÊÏ ØåÆÚ
  !=		expresions Ìᢠע´èÍÚ ÊÏÚÊÏ Æ ØåÆÚ
  <		ÈØÑÜ ×¢´èÍÚ ÄÞ×ÏÜ ×¢´èÍÚ ×á ³Ì ØåÆÚ
  <=		ÈØÑÜ ×¢´èÍÚ ÄÞ×ÏÜ ×¢´èÍÚ ×á ³Ì ØåÆÚ ÍÚ ÊÏÚÊÏ ØåÆÚ
  >		ÈØÑÜ ×¢´èÍÚ ÄÞ×ÏÜ ×¢´èÍÚ ×á ¤ÅÛ³ ØåÆÚ
  >=		ÈØÑÜ ×¢´èÍÚ ÄÞ×ÏÜ ×¢´èÍÚ ×á ¤ÅÛ³ ÍÚ ÊÏÚÊÏ ØåÆÚ ¦ÂèÍÚÄÛ

ÍÄÛ ³Û×Ü ÈèÏåµèÏÚÌ ÔÚ³èÍ ³å ÊÚÏ ÊÚÏ ¸ÑÚÆÚ Øâ Âå ¦×³á ÑÛÍá loop
¨ÈÑÊèÅ Øâ¢. ¨ÄÚØÏÁ ³á ÑÛÍá ÍÄÛ ³Û×Ü ÕÊèÄ-³åÕ Ìᢠ×á ÄÛÍá Øݬ ÕÊèÄ
³å ÀÞ¢ÀÆÚ Øâ Âå ÑÛ´ ׳Âá Ø⢠:-

  #!/usr/bin/perl
  # ÕÊèÄ ³å output ÉÚ¦Ñ ÌᢠÀÞ¢ÀÆÚ
  while ($_ = ) {
    if ($_ =~/ÈèÏÍÚÁ/) {print $_;}
  }

ÍØÚ¡ ÈÏ 'while' ÑÞÈ ³Ú ¨ÈÍåµ ³ÛÍÚ µÍÚ Øâ. ÍØ ÈèÏåµèÏÚÌ STDIN Ìá ¤µÑÜ
È¢³èÂÛ ÈÀéÆá ³á ÈÕè¸Ú ¨×Ìᢠ'ÈèÏÍÚÁ' ³å ÀÞ¢ÀÂÚ Øâ ÂÃÚ ×ÉÑÂÚ ÌÛÑÆá
ÈÏ ¨× È¢³èÂÛ ³å ×è³èÏÜÆ ÈÏ ÑÛ´ÂÚ Øâ. ÍØ ×ÛÑ×ÛÑÚ ÂÊ Â³ ¸ÑÂÚ ÏØÂÚ Øá
ºÊ ³ ÕÊèÄ-³åÕ ÉÚ¦Ñ ×ÌÚÈè ÆØÜ¢ Øå ºÚÂÜ.

ÍØÚ¡ ÈÏ  ¥ÄáÕ ¬³ È¢³èÂÛ ÈÀéÂÚ Øâ, ºâ×Ú ³Û ØÌ ÈØÑá Äá´ ¸Ý³á
Øâ¢. È¢³èÂÛ ³åÈÀé³Ï variable '$_' Ìá¢ Ï´Ú ºÚÂÚ Øâ. ÑÞÈ ³á ¤ÆèÂÏèµÂ
¨×ÌᢠÈèÏÍÚÁ ³å ÀÞ¢ÀÚ ºÚÂÚ Øâ. ÌÛÑÆá ÈÏ ¨× È¢³èÂÛ ³å ×è³èÏÜÆ ÈÏ ÑÛ´
ÄÛÍÚ ºÚÂÚ Øâ. ÀÞ¢ÀÆá ³Ú ³ÚÏèÍ ØåÂÚ Øâ :-

  $_ =~ /ÈèÏÍÚÁ/

ÄèÔÚÏÚ. ÍØ ¥ÄáÕ Øâ 'ÈèÏÍÚÁ' ³å variable $_ ÌᢠÀÞ¢ÀÆá ³Ú. ×ÉÑÂÚ ÌÛÑÆá
ÈÏ ØÚ¡-ÔÚ³èÍ Øâ :-

  print $_;

ºÛ׳á ÄèÔÚÏÚ ÍØ È¢³èÂÛ ×è³èÏÜÆ ÈÏ ÑÛ´ ÄÜ ºÚÂÜ Øâ. ÑÞÈ ÂÊ Â³ ¸ÑÂÚ Øâ
ºÊ ³  È¢³èÂÛÍÚ¡ ÈÀÂÚ ÏØÂÚ Øâ. ÉÚ¦Ñ ×ÌÚÈè ØåÆá ÈÏ ÑÞÈ ×ÌÚÈèÂ
Øå ºÚÂÚ Øâ.

¸Þ¢³Û ¦× ÂÏØ ³á ÑÞÈ ÊÚÏ ÊÚÏ ¥Âá Øâ¢, ¦×³Ú ¬³ ×¢³èÖÛÈè ÏÞÈ ËÜ Øâ :-

  while (<>) {
    if (/ÈèÏÍÚÁ/) { print; }
  }

³ØÆá ³Ú ÂÚÂèÈÏèÍ Øâ ³Û <>, //, print ¥ÄÛ ³á ×Úà variable ³Ú ÆÚÌ Æ ÄÛÍÚ
µÍÚ Øå Âå Ôá $_ ³á ÌÚÅèÍÌ ×á ¤ÈÆÚ ¤ÈÆÚ ³ÚÏèÍ ³ÏÂá Øâ¢. ¦×Ü ÈèϳÚÏ ×á
×ÚÌÚÆèÍ£ <> ³Ú ÈÞÏèÁ ÏÞÈ Øâ .

¨ÈÏå³è ÈèÏåµèÏÚÌ ³å ÍÄÛ srch.pl ÉÚ¦Ñ Ìá¢ Ï´Ú ºÚ¬ ÂÃÚ ÕÊèÄ-³åÕ '³åÕ'
ÆÚ̳ ÉÚ¦Ñ ÌᢠØå Âå ¨×á ¦× ÈèϳÚÏ ×á ´åº ×³Âá Ø⢠:-

  $ srch.pl  < ³åÕ
  "ÈèÏÍÚÁ","n"


37.3 Pattern Matching - Regular Expressions ([37.4] [37.3.1] [37.2] [UP])

ÈÛ¹Ñá ¤Æݸè¹áÄ ÌᢠØÌÆá Äá´Ú ³Û ÈÏèÑ ÄèÔÚÏÚ ³Û× ÈèϳÚÏ ¬³ string ³å
ÄÞ×Ïá string ÌᢠÀÞ¢ÀéÚ ºÚ ׳ÂÚ Øâ. ÌÚÆÑᢠ³Û ÄÜ µ§ È¢³èÂÛ Øâ :-

  $_ = ' ÊÝÆèÄáÑå ØÏÊåÑå¢ ³á ÌÝ¡Ø ØÌÆá ×ÝÆÜ ³ØÚÆÜ ÃÜ';

ÂÃÚ ÍÄÛ ÍØ ºÚÆÆá ³Ü ºÏÞÏ Øâ ³Û ³èÍÚ ¦×Ìᢠ'Ì' ×á ÕÝÏÞ ØåÆá ÔÚÑÚ ÕÊèÄ
Øâ, Âå ÑÛ´ ׳Âá Ø⢠:-

/ Ì/

¦×³á ¤ÂÛÏÛ³è ÈÏèÑ ÌᢠÄÛÍá Øݬ ×Ú¢¸å¢ (pattern) ³å ÀÞ¢ÀÆá ³Ü ³èÖÌÂÚ
Øâ. ¦× ¤Æݸè¹áÄ ÌᢠØÌ ×Ú¢¸å¢ ³á ÔÛÖÍ Ìᢠ×ܴᢵá. Íá ÍÞÆÛ³è× ³á
×Ú¢¸å¢ ³á ÔÛÖÍ Ìᢠ×ܴᢵá. Íá ÍÞÆÛ³è× ³á ×Ú¢¸å¢ ÈÏ ØÜ ¥ÅÚÏÛÂ, ¨Æ³Ú
ØÜ ÔÛ×èÂß ÏÞÈ Øâ¢.


37.3.1 ÕÝÏÞ Ô ¤Æè (^,$) ([37.4] [37.3] [37.3.2] [UP])

ÍÄÛ ³Û×Ü string ³å È¢³èÂÛ ³á ÈèÏÚÏ¢Ë ÌᢠØÜ ÀÞÀéÆÚ Øâ Âå ÑÛ´ ׳Âá
Ø⢠:-

  /^ÊÝÆèÄáÑå/

ÍØ ÈèÏÃÌ ÕÊèÄ ×á ÌáÑ ´Ú¬µÚ. ¦×Ü ÈèϳÚÏ ¤¢Â ÌᢠÀÞ¢ÀÆá ³á ÑÛÍá
Ñ۴ᢵá :-

  /ÍÜ$/


37.3.2 ³å§ ËÜ ¤³èÖÏ (.) ([37.4] [37.3] [37.3.3] [37.3.1] [UP])

ÍÄÛ ×Ú¢¸á Ìᢠ³å§ ËÜ ¤³èÖÏ ¥ ׳ÂÚ Øâ, Âå ¨×á `.' ³Ü ×ØÚÍÂÚ ×á ÑÛ´Ú
ºÚ ׳ÂÚ Øâ. ¨ÄÚØÏÁ ³á ÑÛÍá ÆÛÌèÆ ×Ú¢¸Ú ¨× ÕÊèÄ ³å ÀÞ¢ÀÂÚ Øâ ºÛ׳Ú
ÈèÏÃÌ ¤³èÖÏ ³Ý¹ ËÜ Øå ÈÏ `Ý' ³Ü ÌÚÂèÏÚ ³á ×Úà Øå:-

  / .Ý/

¤Â£ ÍØ ` ÊÝ' ×á ÌÛÑÚÆ ³ÏáµÚ.


37.3.3 ¤³èÖÏ ×Þ¸Ü ([,]) ([37.4] [37.3] [37.3.4] [37.3.2] [UP])

ÍÄÛ ¬³ ×Þ¸Ü Ìᢠ¥Æá ÔÚÑá ¤³èÖÏ ³å ÀÞ¢ÀÆÚ Øâ Âå ÍØ ×ÏÑÂÚ ×á ³ÛÍÚ ºÚ
׳ÂÚ Øâ. ¨ÄÚØÏÁÚÏèÃ, `Ì' ÍÚ `×' ×á ÈèÏÚÏÌèË ØåÆá ÔÚÑá ÕÊèÄ ³å ÀÞ¢ÀÆÚ
Øå Âå ³åÖè¾³ Ìᢠ¿ÚÑ³Ï ¨Æ³Ü ×Þ¸Ü ÊÆÚ§ ºÚ ׳ÂÜ Øâ :-

  / [Ì×]/

ÍÄÛ `Ý' ³Ü ÌÚÂèÏÚ ×ØÛ ÈèÏÃÌ ¤³èÖÏ Ìᢠ`Ì' ÍÚ `×' ³å ÀÞ¢ÀÆÚ Øå Âå
Ñ۴ᢵá :-

  / [Ì×]Ý/

ÍØ ` ÌÝ' (ÌÝ¡Ø) ×á ÌÛÑÚÆ ³ÏáµÚ.

`Ì' ÍÚ `×' ×á ËÛÆèÆ ¤³èÖÏ ×á ÈèÏÚÏ¢Ë ØåÆá ÔÚÑÚ Ô `Ý' ³Ü ÌÚÂèÏÚ ×ØÛÂ
ÕÊèÄ ³å ÀÞ¢ÀÆá ³á ÑÛÍá Ñ۴ᢵá :-

  / [^Ì×]Ý/

¦× ¨ÄÚØÏÁ ÌᢠÍØ `ÊÝ' ×á ÌÛÑÚÆ ³ÏáµÚ.¤Â£ ºØÚ¡ [..] ¤³èÖÏå¢ ³Ü ×Þ¸Ü
ÄáÂÚ Øâ, ÔØÜ¢ [^..] ÄÛÍá Øݬ ¤³èÖÏå¢ ³á ¤ÂÛÏ۳蠤ÆèÍ ×ËÜ ³Ü ×Þ¸Ü ÊÂÚÂÚ
Øâ. (ÅèÍÚÆ Äᢠ³Û `^' ³Ú ¤Ïèà ³åÖè¾³ ÌᢠÂÃÚ ³åÖè¾³ ³á ÊÚØÏ ËÛÆèÆ Øâ.
³åÖè¾³ ³á ÊÚØÏ ÔØ string ³á ÈèÏÚÏ¢Ë ³Ú ×Þ¸³ Øâ ºâ×Ú ³Û ÈØÑá ÊÂÚÍÚ
ºÚ ¸Ý³Ú Øâ.)

`-' ³Ü ×ØÚÍÂÚ ×á ³èÏÌ Ìᢠ¥Æá ÔÚÑá ¤³èÖÏå¢ ³Ü ×Þ¸Ü ×ÏÑÂÚ ×á ÊÆ ×³ÂÜ
Øâ. ºâ×á, ÍÄÛ 0 ×á 4, Ô 7 ×á 9 ³å ÀÞ¢ÀÆÚ Øå Âå Ñ۴ᢵᢠ:-

  /[0-47-9]/


37.3.4 ÈÝÆÏÚÔßÂèÂÛ (*,+) ([37.4] [37.3] [37.3.3] [UP])

ÍÄÛ ³Û×Ü ¤³èÖÏ ÍÚ ×Ú¡¸á ³Ü ÈÝÆÏÚÔßÂèÂÛ ³å ÀÞ¢ÀÆÚ Øå Âå `*' ³Ú ÈèÏÍåµ
³ÛÍÚ ºÚ ׳ÂÚ Øâ. ÍÄÛ ØÌᢠ`¨×á' ³á ÔÛËÛÆèÆ ÏÞÈå¢ ³å (ºâ×á:- ¨×Æá,
¨×³å, ¦ÂèÍÚÄÛ) ³å ÀÞ¢ÀÆÚ Øå Âå Ñ۴ᢵá:-

  / ¨×[^ ]+/

¨ÈÏå³è ³Ú ¤Ïèà Øâ ³Û ` ¨×' ³á ÈÕè¸Ú ` ' (space) ³á ¤ÂÛÏÛ³è ³å§ ËÜ
¤³èÖÏ ÍÚ ÔÏèÁ ¬³ ÍÚ ¬³ ×á ¤ÅÛ³ ÊÚÏ ¥ ׳ÂÚ Øâ. ¤Â£ ÍØ ` ¨×'
³å ÆØÜ¢ ÀÞ¢ÀáµÚ. ÍÄÛ ÄÛÆ³Ï ³Ü È¢³èÂÛÍÚ¡ Øâ :-

  $ =` ³èÖÌÚ ³èÖáÌÂÜ ¨× Ëݺ¢µ ³å ºÛ׳á ÈÚ× µÏÑ Øå'
         ¨×³Ú ³èÍÚ ºå Ģ ØÜÆ ÔÛÖ ÏØÛ ÔÛÆÜ ×ÏÑ Øå;

Âå ÍØ ×Ú¢¸Ú ` ¨×³Ú' ×á ÌáÑ ´Ú¬µÚ.

'*' ³Ú ¤Ïèà '+' ºâ×Ú ØÜ Øâ. ¤ÆèÂÏ ³áÔÑ ¦ÂÆÚ ØÜ Øâ ³Û '*' ÕÞÆèÍ ÍÚ
¤ÅÛ³ ÊÚÏ ÈÝÆÏÚÔßÂèÂÛ ³Ú ÄèÍå³ Øâ. ¤Â£ ÔØ ÕÞÆèÍ string (¤ÏèÃÚÂè '') ×á
ËÜ ÌáÑ ´Ú ׳ÂÚ Øâ. ¤Â£, ×Ú¡¸Ú :-

  / ¨×[^ ]*/
   
' ¨×' ×á ËÜ ÌáÑ ´Ú ׳ÂÚ Øâ (ÂÃÚ ' ¨×³Ú' ×á ËÜ). ¨ÈÏå³è ¨ÄÚØÏÁ Ìá¢,

  [^ ]*

ÕÞÆèÍ string ×á ËÜ ÌáÑ ´Ú ׳ÂÚ Øâ, ¤Â£, ' ¨×' ³á ÊÚÄ ÕÞÆèÍ string
ºå¿Æá ×á ' ¨×' ØÜ ÊÆÂÚ Øâ. ×Úà ØÜ ÍÄÛ [^ ] ³Ü ÈÝÆÏÚÔßÂèÂÛ 



37.4 ÌáÑ ³Ú ÉÑ ([37.5] [37.3] [UP])

ºÊ ³Û×Ü ×Ú¢¸á ³å ÀÞ¡ÀéÚ ºÚÂÚ Øâ ÂÃÚ ×ÉÑÂÚ ÈÞÏèÔ³ ÌáÑ Øå ºÚÂÚ Øâ Âå ¦×³Ú
ÉÑ ³Ý¹ ÔÛÕáÖ variables Ìᢠ¸ÑÚ ºÚÂÚ Øâ. ¨ÄÚØÏÁ ³á ÑÛÍá ¨ÈÏå³è ¨ÄÚØÏÁ
ÌᢠÌáÑ ³ÛÍÚ ØÝ¥ string ` ¨×³Ú', ÆÚ̳ variable ÌᢠÈÏèÑ ÄèÔÚÏÚ Ï´Ú ºÚÂÚ
Øâ:-

  $& = ` ¨×³Ú'

¦××á ÈÞÏèÔ ³Ú ËÚµ ÂÃÚ Ê¸Ú ØÝ¥ ËÚµ ËÜ ÔÛÕáÖ variables Ìᢠϴ ÄÛÍÚ ºÚÂÚ Øâ :-

  $` = ' ³èÖÌÚ ³èÖáÌÂÜ ¨× Ëݺ¢µ ³å ºÛ׳á ÈÚ× µÏÑ Øå'
  $' = '³èÍÚ ºå Ģ ØÜÆ ÔÛÖ ÏØÛ ÔÛÆÜ ×ÏÑ Øå'

¦Æ variables ³á ÌÞÑèÍ ³å ÈèÏåµèÏÚÌ ÔÚ³èÍ ³Ü ÌÄÄ ×á ¨ÈÍåµ ÌᢠÑÚÍÚ ºÚ 
׳ÂÚ Øâ. ¦Æ³å `print' ³ÛÍÚ ºÚ ׳ÂÚ Øâ, ¦ÆÌᢠÈÝÆ£ ³Û×Ü ×Ú¢¸á ³å 
ÀÞ¢ÀéÚ ºÚ ׳ÂÚ Øâ, ¦ÂèÍÚÄÛ. 

ÍÄÛ ÌáÑ ³ÛÍá Øݬ ×Ú¢¸á ³á ³Û×Ü ËÚµ ³å variable ÌᢠϴÆÚ Øå, Âå ¨×³Ü
ËÜ ×ÝÔÛÅÚ ¨ÈÑÊèÅ Øâ. ¨ÄÚØÏÁ ³á ÑÛÍá ÍÄÛ ØÌᢠ`¨×' ³á ×Úà ¥Íá Øݬ 
suffix ³å ³Û×Ü variable ÌᢠϴÆÚ Øå Âå ÑÛ´ ׳Âá Ø⢠:-

  / ¨×([^ ]+)/

ºå ØÛ×è×Ú `(', `)' ³á Êܸ ÌᢠØâ, ¬³ variable ÔÛÕáÖ Ìᢠ($1 Ìá¢)
¸ÑÚ ºÚÂÚ Øâ. ¤Â£ ÍØÚ¡ ÈÏ :-

  $1 = '³Ú' 

ÍÄÛ ¬³ ×á ¤ÅÛ³ ³åÖè¾³ Ø⢠Âå ³èÏÌÕ£ $1, $2 ¦ÂèÍÚÄÛ variables
ÌᢠÌáÑ ´ÚÆá ÔÚÑá ËÚµ Ï´ ÄÛÍá ºÚÂá Øâ¢.

¨ÄÚØÏÁ ³á ÑÛÍá ËÛÆèÆ ×Ú¡¸á ×á :-

  / ¨×([^ ]*) + ([^ ]+)/

ÌáÑ ´ÚÆá ³á ÊÚÄ ØåµÚ :-

  $1 ='' 
  $2 = `Ëݺ¢µ'

ʸá Øݬ ËÚµ ÌᢠÈÝÆ£ ÍØÜ ×Ú¡¸Ú ÀÞ¡ÀÆá ÈÏ ÌáÑ ´ÚÆá ³á ÊÚÄ ØåµÚ :-

  $1 = `³Ú'
  $2 = `³èÍÚ'



37.5 ×Ú¡¸å¢ Ìᢠ`ÍÚ' (`|') ([37.4] [UP])

ÍÄÛ ÍØ ³ØÆÚ Øå ³Û ¬³ ×Ú¡¸Ú ÍÚ ¤ÆèÍ Âå `|' ³Ú ¨ÈÍåµ ³ÛÍÚ ºÚÂÚ Øâ ºâ×á,
ÍÄÛ `ØÜÆ' ÍÚ `ÏØÛÂ' ³å ÀÞ¢ÀÆÚ Øå ÂÃÚ ¨××á ÈÞÏèÔ ¥Æá ÔÚÑá ÕÊèÄ ³å 
variable ÌᢠϴÆÚ Øå Âå Ñ۴ᢵá :-

  /(([^ ]+) *ÏØÛÂ)|(([^ ]+) *ØÜÆ)/

ÕÝÏÞ Ìᢠ`ØÜÆ' ÌáÑ ´Ú¬µÚ, ³èÍå¢³Û ÄÜ Øݧ ³ÔÛÂÚ Ìᢠ'ØÜÆ' ÈØÑá ¥ÂÚ
Øâ, ¤Â£ ØåµÚ :-

  $2 ='' 
  $4 = 'Ä¢Â'

³åÖè¾³å¢ ³Ü ×¢´èÍÚ ÍÚ ¨Æ³å µÛÆÆá ³Ú ÂÏÜ³Ú Æܸá ÄÛÍÚ ØÝ¥ Øâ:-

  /(([^ ]+) *ÏØÛÂ)|(([^ ]+) *ØÜÆ)/
   |^-----^      | |^-----^     |
   |  $2         | |  $4        |
   |             | |            |
   ^-------------^ ^------------^
        $1              $3

ʸá Øݬ ËÚµ Ìᢠ($') ×Ú¡¸á ³å ÈÝÆ£ ÀÞ¡ÀÆá ÈÏ `ÏØÛÂ' ÔÚÑÚ ËÚµ ÌáÑ 
´Ú¬µÚ :-

  $2 = `ÔÛÖ'
  $4 ='' 

ÍØÚ¡ ÍØ ÅèÍÚÆ ÄáÆá ÍåµèÍ ÊÚ Øâ ³Û `(`, ')' ³Ú ¬³ ¨ÈÍåµ Øâ:- ÌáÑ ´Ú¬
Øݬ ËÚµ ³å variable ÌᢠϴÆÚ, ÂÃÚ ÄÞ×ÏÚ ¨ÈÍåµ Øâ scope ÊÂÚÆÚ. ¤Â£
ÈØÑá Ô ÂÜ×Ïá `(' ³Ú ¨ÄèÄáÕèÍ Øâ, `|' ³Ú scope ÊÂÚÆÚ. ÈÏèÑ ÄåÆå¢ ³Ú
ÈÚÑÆ ³ÏÂÜ Øâ, ÂÃÚ $1 Ô $3 ÌᢠËÜ ¨ÈÍݳè ÌÞÑèÍ Ï´ ÄáÂÜ Øâ, ËÑá ØÜ ØÌ
¨×³Ú ¨ÈÍåµ ³ÏᢠÍÚ ÆØÜ¢ :-

  $1 = 'ÔÛÖ ÏØÛÂ'
  $3 = ''        



Index Anusaaraka HOME PAGE