ãå ¥éç·šãRubyã§æ£èŠè¡šçŸãæ±ãæ¹æ³
Rubyåå¿è ã®ããã«æ£èŠè¡šçŸã«ã€ããŠãŸãšããŸããã颿°ãšæ¯ã¹ããšååã®æå³ãšäžèŽããªãã±ãŒã¹ãå€ããæå·ã®ããã«æããŠããŸããããããŸããããã®çç±ã§æ£èŠè¡šçŸãé¿ããŠããŸãåå¿è ã¯ååšããŸãããèŠããããšã§åŸãããã¡ãªããããããŸãããµã³ãã«ã³ãŒãä»ãã§ãããããããæ£èŠè¡šçŸã«ã€ããŠè§£èª¬ããŸãã®ã§åèã«ããŠãã ãããRubyã®æ£èŠè¡šçŸã¯ããã°ã©ã åå¿è
ãããããšãäœãæžããŠããã®ããŸã£ããããããªããšæããŠããŸãã§ãããã
å€åœ©ã§ããããã¹ãŠãèŠããã®ã¯é£ãããããããŸãããå©äŸ¿æ§ãé«ãããšã¯ç¢ºãã§ãã
ä»åã¯Rubyã®æ£èŠè¡šçŸãããŒãã«å¯èœãªéãç°¡æœã«ãŸãšããŸããã
æ£èŠè¡šçŸãšã¯ïŒ

ããã°ã©ã ã«ãããæ£èŠè¡šçŸãšã¯ç¹å®ã®æåãŸãã¯æååã䜿çšããããšã§ãããããåŠçãå®è¡ã§ããããšãæããŸãã
Rubyã¯ä»ã®èšèªãšæ¯ã¹ãŠãã³ãŒãèšå
¥ã®èªç±åºŠãé«ããææ³ãã«ãŒã«ãçè§£ããŠããªããšæãã¬èœãšã穎ã«ããã£ãŠããŸããããããŸããã
æ£èŠè¡šçŸã®ã¡ãªãã
極è«ããã£ãŠããŸãã°ãæ£èŠè¡šçŸã䜿ããªããŠãããã°ã©ã èªäœã®å®è¡ã¯å¯èœã§ãã
ããããæ£èŠè¡šçŸã䜿ãã¡ãªããã¯ãããŸãã®ã§ããŸãã¯èŠãŠã¿ãŸãããã
ïŒ1ïŒæååã®æ€çŽ¢ãåé€ãªã©ãç°¡æçã«ã§ãã
ããã°ã©ã ã«ãããŠæååã®æäœã¯é »ç¹ã«è¡ãããŸããç¹ã«æ€çŽ¢ãåé€ãªã©ã¯å€ã䜿ãããæ£èŠè¡šçŸã§ç°¡æçã«ã§ããŸãã
è€éã§è¡æ°ã®é·ãã³ãŒããæžããããããã£ãããšèŠãããã§ããŸãããã®ã¡ãªããã ãã§ãæ£èŠè¡šçŸãåŠã¶éèŠæ§ããããŸãã
ïŒ2ïŒç¢ºå®æ§ãšé«éãªåŠçããªãããŠãã
æ£èŠè¡šçŸã¯ããããåŠçã®ç¢ºå®æ§ãšé«éæ§ãæã£ãŠããŸãã
ããšãã°æååã®æ€çŽ¢ã¯èªèº«ã§ã³ãŒããæžãããšã¯ã§ããŸãããããããã°ãæœãã§ããããŸãã¯é«éã§ãªãå¯èœæ§ããããŸãã
çšæãããŠãããã®ã䜿ãããšã§ãã³ãŒããæžãæéãæžãã®ããã€ã³ãã§ãã
æ£èŠè¡šçŸäžèЧ

æ£èŠè¡šçŸã䜿ããããšãã®ç¢ºèªã®éã«åœ¹ã«ç«ã€ãšæããŸãã®ã§ãäž»ãªãã®ããŸãšããŸããã
| æ£èŠè¡šçŸïŒæžãæ¹ïŒ | å 容 |
|---|---|
| . | ä»»æã®1æåïŒæ¹è¡ã¯ãªãïŒ |
| * | 0å以äžã®ç¹°ãè¿ã |
| + | 1å以äžã®ç¹°ãè¿ã |
| ? | 0åã1åã®ç¹°ãè¿ã |
| -ïŒãã€ãã³ïŒ | ç¯å²ã®è¡šçŸ |
| []ïŒãã©ã³ã±ããã§å²ãïŒ | ããããã®1æåã«ããã |
| ^ | ããããã®1æåã«ãããããªã |
| ^ ãŸã㯠\A | å é ã«ããã |
| $ ãŸã㯠\Z | ææ«ã«ããã |
| \d | 10鲿° |
| \D | é10鲿° |
| \h | 16鲿° |
| \H | é16鲿° |
| \b | ã¹ããŒã¹ãªã©ã«ããåèªã®åºåã |
| \t | ã¿ãæå |
| \n | æ¹è¡ |
Rubyã®æ£èŠè¡šçŸã¯å€åœ©ã§ãããæ
£ããªããšèŠããããšã¯é£ããã§ãã
äžèšã§æ£èŠè¡šçŸãšãã£ãŠãããããããããã®ãã®ããã¿ãŒã³ãèªã¿åããã®ãªã©ãååšããŸãã
æ£èŠè¡šçŸã ãã§1åã®æ¬ãåºããŠããŸãã»ã©ãããªã¥ãŒã ãå€ããå¥¥ãæ·±ãã®ã§èå³ããæ¹ã¯èª¿ã¹ãŠã¿ããšããã§ãããã
ãµã³ãã«ã³ãŒãã§åŠã¶Rubyã§ã®æ£èŠè¡šçŸ

æ£èŠè¡šçŸã®äœ¿ãæ¹ãåŠã¶ã«ã¯ãµã³ãã«ã³ãŒããèŠãªãããèªèº«ã§å®è·µããŠã¿ãããšãäžçªã§ãã代衚çãªãã®ãçšæããŸããã®ã§ç¢ºèªããŠã¿ãŸãããã
æ£èŠè¡šçŸã§æååã®æœåºãããæ¹æ³
æååã®æœåºã¯å€ãã®æ¥åã§ãè¡ãããŠããŸãã
Rubyã§ã®æ¹æ³ãšããŠäž»ã«4ã€ãããŸãã®ã§èŠãŠãããŸãããã
ïŒ1ïŒmatchã§ãããããéšåãæœåº
string = "ããã°ã©ã ã¯åªå, éåã¯ã»ã³ã¹"
md = string.match(/.*ã¯åªå/)
print(md[0])
match颿°ã®å éšã¯ïœã¯åªåãšããéšåãæœåºããŠããããå®è¡çµæã¯ãããã°ã©ã ã¯åªåããšãªããŸãã*ã䜿ãããšã§æ€çŽ¢æååããšã®æœåºãè¡ã£ãŠããŸãã
ïŒ2ïŒpre_matchã§ãããããæååã®åã®æååãæœåº
reg = /ã¯åªå/.match("ããã°ã©ã ã¯åªåãéåã¯ã»ã³ã¹")
print(reg.pre_match)
1è¡ç®ã§ãã¯åªåãããããå€å®ããã2è¡ç®ã®pre_matchã§ãã¯åªåãã®åã®æååã§ãããããã°ã©ã ããæœåºãããŸãã
ïŒ4ïŒpost_matchã§ãããããæååã®åŸã®æååãæœåº
reg = /ã¯åªå/.match("ããã°ã©ã ã¯åªåãéåã¯ã»ã³ã¹")
print(reg.post_match)
post_matchã¯æååã®åŸãã®æååãæœåºããŸãã
ãã®å Žåã®å®è¡çµæã¯ãéåã¯ã»ã³ã¹ãã§ãã
ïŒ5ïŒ=~ã§ãããããã€ã³ããã¯ã¹ãååŸ
puts /ãã¹ã/ =~ "ãã¹ãå匷ãããã"
puts /ã/ =~ "ãã¹ãå匷ãããã"
puts /ã/ =~ "ãã¹ãå匷ãããã"
=~ãå©çšããããšã§/æåå/ããããããã€ã³ããã¯ã¹ãè¿ããŠãããŸãã
äžèšã³ãŒãã®å Žåã¯1è¡ç®ã0çªç®ã2è¡ç®ã7çªç®ã3è¡ç®ãnilãè¿ãçµæã«ãªããŸãã
ïŒ6ïŒ!~ã§ãããããªãã£ããtrueãååŸ
puts /ãã¹ã/ !~ "ãã¹ãå匷ãããã"
puts /ã/ !~ "ãã¹ãå匷ãããã"
puts /ã/ !~ "ãã¹ãå匷ãããã"
!~ã䜿ãããšã§ããããããªãã£ããtrueãè¿ããŠãããŸãã
äžèšã³ãŒãã®å Žåã¯1è¡ç®ã¯false,2è¡ç®ã¯false,3è¡ç®ãtrueãè¿ããŸãã
æ£èŠè¡šçŸã§çœ®æãããæ¹æ³
ç¹å®ã®æååãæ€çŽ¢ãã眮ãæããããšã眮æãšãããŸãã
ãã¡ããæ¥åã§ãã䜿ãããŸãã®ã§ãèŠããŠãããŠæã¯ãªãã§ãã
ïŒ1ïŒgsubãšgsub!ã§äžèŽããæååãäžæ¬çœ®æãã
æ§æãšããŠã¯äžèšã«ãªããŸãã
å¯Ÿè±¡ã®æåå.gsub(â眮æãããæååâ, âæ€çŽ¢ããæååâ)
äžæ¬çœ®æãããå Žåã«äœ¿çšãããšããã§ãããã
ãµã³ãã«ã³ãŒãã¯äžèšã§ãã
string = "ææç«æ°Žæšéé"
puts string.gsub(/æ/, "æ¥")
puts string
å®è¡çµæã¯ãæ¥æ¥ç«æ°Žæšééãææç«æ°ŽæšééããšãªããŸãã
gsubã§ã¯ãªããgsub!ã«ãããšå€æ°sringèªèº«ããæ¥æ¥ç«æ°Žæšééãã«æžãæãã£ãŠããŸãã®ã§äœ¿ãåãããšããã§ãããã
ïŒ2ïŒsubãšsub!ã§æåã«ãããããæååã®ã¿ã眮æãã
string = "ææç«æ°Žæšéé"
puts string.sub(/æ/, "æ¥")
puts string
subã¯1åç®ã«ãããããæååã眮æããŸãã
äžèšãµã³ãã«ã³ãŒãã§ã¯ãæ¥æç«æ°Žæšééãææç«æ°ŽæšééããšãªããŸããsub!ã¯gsub!åæ§ãæååèªèº«ãæžãæããŠããŸãã®ã§ããã¡ãã䜿ãåããããã«ããŸãããã
ãŸãšã
æ£èŠè¡šçŸã¯å¥¥ãæ·±ããçè§£ããã°äŸ¿å©ã«æ±ããããã«ãªã
Rubyã®æ£èŠè¡šçŸã«ã€ããŠç°¡åã§ã¯ãããŸãããŸãšããŸããã
æ£èŠè¡šçŸã¯æåããçè§£ãã«ãããããããŸããããæ
£ããŠããã«ã€ããŠäŸ¿å©ãã«æ°ã¥ããŠãããŸãã
ç¹ã«Rubyã®æ£èŠè¡šçŸã¯å€åœ©ã§ããèŠããããšã§å¹çåãå³ããŸãã®ã§ãä»åãæ©ã«æ£èŠè¡šçŸã®å匷ãããŠãããšããã§ãããã
TECH PLAYã§ã¯ããšã³ãžãã¢ã®æ¹åãã«å匷äŒã»ã€ãã³ãæ
å ±ãæäŸããŠããŸãã
ãèå³ã®ããæ¹ã¯ãã²ãåå ãã ããã
- ãRubyãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãããã°ã©ãã³ã°ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
- ãåå¿è ãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã












