åå¿è ã®ããã®æ£èŠè¡šçŸïŒæ£èŠè¡šçŸã®æžãæ¹
åå¿è ã®ããã®æ£èŠè¡šçŸ
æ£èŠè¡šçŸïŒregexïŒã¯ãããã¹ããèšè¿°ãããã¿ãŒã³ã§ããæ£èŠè¡šçŸã䜿ãã°ãæååã®æ€çŽ¢ãå ¥åã®æ€èšŒãããŒã¿ã®æœåºãè€éãªæ€çŽ¢ãšçœ®æããåäžã®ã³ã³ãã¯ããªè¡šçŸã§è¡ãããšãã§ããŸããåºç€ãçè§£ããã°ãæ£èŠè¡šçŸã¯ããã°ã©ãã³ã°ããŒã«ãããã®äžã§ãæã匷åãªããŒã«ã®ã²ãšã€ã«ãªããŸãã
æ£èŠè¡šçŸãšã¯äœãïŒ
æ£èŠè¡šçŸã¯ãæ€çŽ¢ãã¿ãŒã³ãå®çŸ©ããæåã®äžŠã³ã§ãããã¿ãŒã³ \d{3}-\d{2}-\d{4} ã¯ãç±³åœã®ç€ŸäŒä¿éçªå·ïŒ3æ¡ããã€ãã³ã2æ¡ããã€ãã³ã4æ¡ïŒã«ãããããŸãã
æ£èŠè¡šçŸãšã³ãžã³ã¯ãJavaScriptãPythonãJavaãRubyãGo ãªã©ãã»ãŒãã¹ãŠã®ããã°ã©ãã³ã°èšèªã«çµã¿èŸŒã¿ã§ååšããŸãã
ãªãã©ã«æå
ã»ãšãã©ã®æåã¯ãããèªèº«ã«ãããããŸãããã¿ãŒã³ cat ã¯ããªãã©ã«æåå "cat" ãçŸããå Žæãã¹ãŠã«ãããããŸãã
Pattern: cat
Matches: "cat" in "The cat sat on the mat."
Matches: "cat" in "catalog"
ãªãã©ã«ãããã¯åçŽã§ããéçããããŸããæ¬åœã®åã¯ã¡ã¿ãã£ã©ã¯ã¿ãŒã«ãããŸãã
ã¡ã¿ãã£ã©ã¯ã¿ãŒ
ãããã®æåã¯ç¹å¥ãªæå³ãæã¡ããªãã©ã«ãšããŠããããããã«ã¯ \ ã§ãšã¹ã±ãŒãããå¿
èŠããããŸãã
. ^ $ * + ? { } [ ] \ | ( )
æåã¯ã©ã¹
æåã¯ã©ã¹ã¯ãéåã®äžãã 1 æåã«ãããããŸãã
è§æ¬åŒ§è¡šèš
| ãã¿ãŒã³ | ããããããã® |
|---------|---------|
| [aeiou] | ä»»æã®æ¯é³ |
| [0-9] | ä»»æã®æ°å |
| [a-zA-Z] | ä»»æã®è±å |
| [^0-9] | æ°åã§ã¯ãªãä»»æã®æå |
å®çŸ©æžã¿ã¯ã©ã¹
| çç¥åœ¢ | 説æ |
|-----------|-------------|
| \d | ä»»æã®æ°åïŒ[0-9] ãšåãïŒ |
| \w | è±åãæ°åããŸãã¯ã¢ã³ããŒã¹ã³ã¢ |
| \s | 空çœãã¿ããæ¹è¡ |
| \D | ä»»æã®éæ°å |
| \W | ä»»æã®éåèªæå |
| \S | ä»»æã®éç©ºçœæå |
| . | æ¹è¡ä»¥å€ã®ä»»æã®æå |
éæå®å
éæå®åã¯ãçŽåã®èŠçŽ ãäœåçŸããªããã°ãªããªãããå¶åŸ¡ããŸãã
| éæå®å | æå³ | äŸ | ããããããã® |
|------------|---------|---------|---------|
| * | 0 åä»¥äž | a* | ""ã"a"ã"aa" |
| + | 1 åä»¥äž | a+ | "a"ã"aa"ã"aaa" |
| ? | 0 åãŸã㯠1 å | colou?r | "color"ã"colour" |
| {3} | ã¡ããã© N å | \d{3} | "123" |
| {2,4} | N åä»¥äž M åä»¥äž | \d{2,4} | "12"ã"123"ã"1234" |
äŸ
\d+ â "42" in "Answer is 42"
https?:// â "http://" and "https://"
ã¢ã³ã«ãŒ
ã¢ã³ã«ãŒã¯æåã§ã¯ãªãäœçœ®ã«ãããããŸãã
| ã¢ã³ã«ãŒ | æå³ |
|--------|---------|
| ^ | æååã®å
é |
| $ | æååã®æ«å°Ÿ |
| \b | åèªã®å¢ç |
| \B | åèªã®å¢çä»¥å€ |
^hello â matches "hello" only at the start
end$ â matches "end" only at the end
\bword\b â matches "word" as a whole word, not inside "sword"
ã°ã«ãŒããšéžæ
ãã£ããã£ã°ã«ãŒã ( ) ã¯ããããããéšåãæœåºããŸãïŒ
(\d{3})-(\d{4}) â "555-1234", captures "555" in group 1, "1234" in group 2
éãã£ããã£ã°ã«ãŒã (?: ) ã¯ãæœåºããã«ã°ã«ãŒãåããŸãïŒ
(?:https?|ftp):// â "http://", "https://", "ftp://"
éžæ | 㯠OR ãšããŠæ©èœããŸãïŒ
cat|dog|bird â matches "cat", "dog", or "bird"
å®çšçãªæ£èŠè¡šçŸã®äŸ
| ãŠãŒã¹ã±ãŒã¹ | ãã¿ãŒã³ |
|----------|---------|
| ç±³åœã®é»è©±çªå· | \d{3}-\d{3}-\d{4} |
| ã¡ãŒã«ã¢ãã¬ã¹ïŒç°¡æïŒ | \S+@\S+\.\S+ |
| IP ã¢ãã¬ã¹ | \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} |
| ããã·ã¥ã¿ã° | #[a-zA-Z]\w* |
| æå»ïŒHH:MMïŒ | [01]\d|2[0-3]:[0-5]\d |
æ£èŠè¡šçŸãã¿ãŒã³ããã¹ãããæ¹æ³
åžžã«ãã¿ãŒã³ã察話çã«ãã¹ãããŸãããïŒ
- æ£èŠè¡šçŸãã¿ãŒã³ãå ¥åããŸãã
- ãã¹ãæååãå ¥åããŸãã
- ã©ã®éšåãããããããããªã¢ã«ã¿ã€ã ã§ç¢ºèªããŸãã
- 調æŽããŠç¹°ãè¿ããŸãã
æ£èŠè¡šçŸãã¹ã¿ãŒããŒã«ã䜿ã£ãŠãã¿ãŒã³ã詊ããŠã¿ãŠãã ããããããããã€ã©ã€ããããã£ããã£ã°ã«ãŒãã衚瀺ããåŒã®åéšåãäœãããã®ããæ£ç¢ºã«çè§£ããã®ã«åœ¹ç«ã¡ãŸãã