ãã£ããã£ã°ã«ã¼ã (...) ã®ä¸èº«ã¯ãçµæãç½®ææååã®ä¸ã ãã§ãªããã¿ã¼ã³èªèº«ã®ä¸ã§ãå©ç¨ãããã¨ãã§ãã¾ãã
çªå·ã«ãã徿¹åç §: \N
ã°ã«ã¼ãã¯ãã¿ã¼ã³ã®ä¸ã§ \N ã使ããã¨ã§åç
§ãããã¨ãã§ããN ã¯ã°ã«ã¼ãã®çªå·ã§ãã
ããæç½ã«ããããã«ã次ã®ãã¨ãèãã¦ã¿ã¾ãããã
ç§ãã¡ã¯å¼ç¨ç¬¦ã§å²ã¾ããæååãè¦ã¤ããå¿
è¦ãããã¾ã: ã·ã³ã°ã«ã¯ã©ã¼ã '...' ãããã¯ããã«ã¯ã©ã¼ã "..." â 両æ¹ã®ããªã¢ã³ãã«ãããããå¿
è¦ãããã¾ãã
ã©ããã£ã¦ããããæ¢ãã¾ããï¼
ãã¿ã¼ã³ä¸ã«2種é¡ã®å¼ç¨ç¬¦ãããã¾ã: ['"](.*?)['"]ããã㯠"..." 㨠'...' ã®ãããªæååãè¦ã¤ãã¾ããã"She's the one!" ã®æååã®ããã«ãããå¼ç¨ç¬¦ãå¥ã®å¼ç¨ç¬¦ã®ä¸ã«ç»å ´ããæãæ£ãããªããããã«ãªãã¾ãã:
let str = "He said: \"She's the one!\".";
let reg = /['"](.*?)['"]/g;
// çµæã¯æå¾
ãããã®ã§ã¯ããã¾ãã
alert( str.match(reg) ); // "She'
ã覧ã®éãããã¿ã¼ã³ã¯éå§ã®å¼ç¨ç¬¦ " ãè¦ã¤ãããã®å¾ããã¹ãã¯ä»ã®å¼ç¨ç¬¦ ' ã¾ã§é²ã¿ãããããéãã¾ãã
ãã¿ã¼ã³ãéå§å¼ç¨ç¬¦ã¨åãéãå¼ç¨ç¬¦ãæ¢ãããã«ããããã«ãããããã£ããã£ã°ã«ã¼ãã§ã©ãããã徿¹åç
§ã使ç¨ãã¾ããã (['"])(.*?)\1:
ããã¯æ£ããã³ã¼ãã§ã:
let str = "He said: \"She's the one!\".";
let reg = /(['"])(.*?)\1/g;
alert( str.match(reg) ); // "She's the one!"
ããã§ãã¾ãåä½ãã¾ã! æ£è¦è¡¨ç¾ã¨ã³ã¸ã³ã¯æåã®å¼ç¨ç¬¦ (['"]) ãè¦ã¤ããã®ä¸èº«ãè¦ãã¾ããããã¯æåã®ãã£ããã£ã°ã«ã¼ãã§ãã
ããã«ãã¿ã¼ã³ \1 㯠âæåã®ã°ã«ã¼ãã¨åãããã¹ããè¦ã¤ããâ ãã¨ãæå³ãã¾ãã
åæ§ã«ã\2 ã¯2çªç®ã®ã°ã«ã¼ããæå³ãã\3 ã¯3çªç®â¦ã¨ãªãã¾ãã
ã°ã«ã¼ãã®ä¸ã§ ?: ã使ç¨ãã¦ããå ´åã¯åç
§ãããã¨ã¯ã§ãã¾ããããã£ããã£ãé¤å¤ãããã°ã«ã¼ã (?:...) ã¯ã¨ã³ã¸ã³ã«è¨æ¶ããã¾ããã
\1, ç½®æã§ã®: $1ç½®ææååã§ã¯ããã«è¨å· $1 ã使ç¨ãã䏿¹ããã¿ã¼ã³ã§ã¯ããã¯ã¹ã©ãã·ã¥ \1 ã§ãã
ååã«ãã徿¹åç
§: \k<name>
æ£è¦è¡¨ç¾ã«å¤ãã®æ¬å¼§ãããå ´åãååä»ããããã¨ä¾¿å©ã§ãã
ååä»ããããã°ã«ã¼ããåç
§ããã«ã¯ã\k<name> ã使ç¨ãã¾ãã
ä¸è¨ã®ä¾ã§ã¯ãå¼ç¨ç¬¦ãæã¤ã°ã«ã¼ãã ?<quote> ãååä»ãããã¦ãã¾ãããªã®ã§ã徿¹åç
§ã¯ \k<quote> ã«ãªãã¾ãã:
let str = `He said: "She's the one!".`;
let regexp = /(?<quote>['"])(.*?)\k<quote>/g;
alert( str.match(regexp) ); // "She's the one!"
ã³ã¡ã³ã
<code>ã¿ã°ã使ã£ã¦ãã ãããè¤æ°è¡ã®å ´åã¯<pre>ãã10è¡ãè¶ ããå ´åã«ã¯ãµã³ãããã¯ã¹ã使ã£ã¦ãã ãã(plnkr, JSBin, codepenâ¦)ã