æ°éè©ã¯ã¢ãã ã®å¾ã«ç½®ããããã®ã¢ãã ãä¸å®åæ°ç¹°ãè¿ãã¾ããåç¬ã§ç¾ãããã¨ã¯ããã¾ãããããããã®æ°éè©ã¯ããã¿ã¼ã³ãç¹°ãè¿ãããªããã°ãªããªãæå°æ°ã¨æå¤§æ°ãæå®ãããã¨ãã§ãã¾ãã
æ°éè© æå°å¤ æå¤§å¤?
0 1 *
0 ç¡é大 +
1 ç¡é大 {count}
count
count
{min,}
min
ç¡é大 {min,max}
min
max
{count}
ã{min,}
ã{min,max}
ã®æ§æã§ã¯ãæ°å¤ã®å¨ãã«ç©ºç½ãå
¥ãããã¨ã¯ã§ãã¾ãããããããªãã¨ãªãã©ã«ã®ãã¿ã¼ã³ã«ãªãã¾ãã
const re = /a{1, 3}/;
re.test("aa"); // false
re.test("a{1, 3}"); // true
ãã®åä½ã¯ Unicode 対å¿ã¢ã¼ãã§ä¿®æ£ããã䏿¬å¼§ãã¨ã¹ã±ã¼ããªãã§ãªãã©ã«ã«å
¥ãããã¨ãã§ããªããªãã¾ããã{
㨠}
ãã¨ã¹ã±ã¼ããªãã§ãªãã©ã«ã¨ãã¦ä½¿ç¨ã§ããã¨ããã®ã¯ã¦ã§ãã®äºææ§ã®ããã®éæ¨å¥¨æ§æã¨ãã¦ã®ã¿èªãããã¦ãããé ¼ã£ã¦ã¯ããã¾ããã
/a{1, 3}/u; // SyntaxError: Invalid regular expression: Incomplete quantifier
æå°å¤ãæå¤§å¤ãã大ããã¨æ§æã¨ã©ã¼ã«ãªãã¾ãã
/a{3,2}/; // SyntaxError: Invalid regular expression: numbers out of order in {} quantifier
æ°éè©ã«ãã£ã¦ããã£ããã£ã°ã«ã¼ããè¤æ°åç §åããããã¨ãã§ãã¾ãããã®å ´åã®åä½ã«ã¤ãã¦ã¯ããã£ããã£ã°ã«ã¼ãã®ãã¼ã¸ãåç §ãã¦ãã ããã
ä¸è´ãããã¨ã«æååãåãã§ããå¿ è¦ã¯ããã¾ããã
/[ab]*/.exec("aba"); // ['aba']
æ°éè©ã¯æ¢å®ã§ã¯è²ªæ¬²ã§ããã¤ã¾ããæå¤§å¤ã«éããã¾ã§ããããã¯ãã以ä¸ä¸è´ããããã¨ãã§ããªããªãã¾ã§ãå¯è½ãªéãä½åº¦ã§ãç
§åãããã¨ãã¾ããæ°éè©ã®å¾ã« ?
ãä»ãããã¨ã§ã貪欲ã§ãªãæ°éè©ã«ãããã¨ãã§ãã¾ãããã®å ´åãæ°éè©ã¯ã§ããéãä¸è´åæ°ãå°ãªãããããã¨ããæ®ãã®ãã¿ã¼ã³ããã®åæ°ã§ä¸è´ããããã¨ãã§ããªããªã£ãå ´åã®ã¿ããã以ä¸ã®åæ°ãç
§åãããã¨ãã¾ãã
/a*/.exec("aaa"); // ['aaa']; å
¥åå
¨ä½ãæ¶è²»ããã
/a*?/.exec("aaa"); // ['']; æåãæ¶è²»ããªãã¦ããä¸è´ãããã¨ã¯å¯è½
/^a*?$/.exec("aaa"); // ['aaa']; æ¶è²»ããæåæ°ãæ¸ãããã¨ã¯ä¸å¯è½ã ããç
§åã«ã¯æåãã
ãã ããããã¤ã³ããã¯ã¹ã§æ£è¦è¡¨ç¾ãæååã¨ä¸è´ããã¨ããã以éã®ã¤ã³ããã¯ã¹ã試ããªããªãã¾ãã
/a*?$/.exec("aaa"); // ['aaa']; ç
§åã¯æåã®æåã§ãã§ã«æåãã¦ããã®ã§ãæ£è¦è¡¨ç¾ã¯ 2 æåç®ã§ç
§åãéå§ãããã¨ãã¾ããã
è²ªæ¬²ãªæ°éè©ã¯ããã以å¤ã®ãã¿ã¼ã³ã«ä¸è´ãããã¨ãä¸å¯è½ãªå ´åãå復忰ãå°ãªããããã¨ããããããã¾ããã
/[ab]+[abc]c/.exec("abbc"); // ['abbc']
ãã®ä¾ã§ã¯ãæåã® [ab]+
ã¯è²ªæ¬²ã« "abb" ã«ä¸è´ãã¾ããã[abc]c
ã¯æ®ãã®ãã¿ã¼ã³ ("c") ã«ä¸è´ãããã¨ãã§ããªãã®ã§ãæ°éè©ã¯ "ab" ã ãã«ä¸è´ããããã«ç¸®å°ããã¾ãã
è²ªæ¬²ãªæ°éè©ã¯ãç¡éåã®ç©ºæååã¨ä¸è´ãããã¨ãé¿ãã¾ãã ç
§åããæåæ°ãæå°å¤ã«éãããã®ä½ç½®ã®ã¢ãã ã§æ¶è²»ãããæåããªããªãã¨ã æ°éè©ã¯ç
§åã忢ãã¾ãã ããã /(a*)*/.exec("b")
ãç¡éã«ã¼ãã«ãªããªãçç±ã§ãã
è²ªæ¬²ãªæ°éè©ã¯å¯è½ãªéãå¤ãã®åæ°ã®ç
§åããããã¨ãã¾ããä¾ãã°ã/(aa|aabaac|ba)*/.exec("aabaac")
㯠"aabaac"
ã®ä»£ããã« "aa"
㨠:ba"
ã«ä¸è´ãã¾ãã
æ°éè©ã¯åä¸ã®ã¢ãã ã«é©ç¨ããã¾ããé·ããã¿ã¼ã³ãè«çåãéåãããå ´åã¯ãã°ã«ã¼ãåããå¿ è¦ãããã¾ãã æ°éè©ã¯ã¢ãµã¼ã·ã§ã³ã«ã¯é©ç¨ã§ãã¾ããã
/^*/; // SyntaxError: Invalid regular expression: nothing to repeat
Unicode 対å¿ã¢ã¼ãã§ã¯ãå èªã¿ã¢ãµã¼ã·ã§ã³ã¯éåã§ãã¾ããããã¯ã¦ã§ãã®äºææ§ã®ããã®éæ¨å¥¨æ§æã§ãããé ¼ã£ã¦ã¯ããã¾ããã
/(?=a)?b/.test("b"); // true; å
èªã¿ã 0 åä¸è´
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4