Baseline Widely available
exec()
㯠RegExp
ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãæå®ãããæååã®ä¸ã§ãã®æ£è¦è¡¨ç¾ã¨ä¸è´ãããã®ãæ¤ç´¢ãããã®çµæã®é
åãã¾ã㯠null
ãè¿ãã¾ãã
const regex1 = RegExp("foo*", "g");
const str1 = "table football, foosball";
let array1;
while ((array1 = regex1.exec(str1)) !== null) {
console.log(`Found ${array1[0]}. Next starts at ${regex1.lastIndex}.`);
// Expected output: "Found foo. Next starts at 9."
// Expected output: "Found foo. Next starts at 19."
}
æ§æ 弿°
str
æ£è¦è¡¨ç¾ã®ç
§åã宿½ããæååããã¹ã¦ã®å¤ã¯æååã«å¼·å¶ããã¾ãã®ã§ãçç¥ããã undefined
ãæ¸¡ããããã㨠exec()
ã¯æåå "undefined"
ãæ¤ç´¢ããããã«ãªãã¾ãããããã¯æãã¨ããã§ã¯ãªãã§ãããã
ç
§åã«å¤±æããå ´åã¯ã exec()
ã¡ã½ãã㯠null
ãè¿ãã lastIndex
ã 0
ã«è¨å®ãã¾ãã
ç
§åã«æåããå ´åã exec()
ã¡ã½ããã¯é
åãè¿ããæ£è¦è¡¨ç¾ãªãã¸ã§ã¯ãã® lastIndex
ããããã£ãæ´æ°ãã¾ããè¿ãããé
åã¯ãä¸è´ããããã¹ããæåã®é
ç®ã¨ãã¦æã¡ããã®å¾ãä¸è´ããããã¹ãã®æ¬å¼§ã«ãããã£ããã£ã°ã«ã¼ãã«å¯¾ã㦠1 ã¤ãã¤ã®é
ç®ãæã¡ã¾ãã
index
æååä¸ã§ä¸è´ããä½ç½®ã® 0 ããå§ã¾ãã¤ã³ããã¯ã¹ã§ãã
input
ç §å対象ã§ãã£ãå ã®æååã§ãã
groups
ååä»ããã£ããã£ã°ã«ã¼ãã示ã null
ãããã¿ã¤ããªãã¸ã§ã¯ãã§ããã®ãã¼ãååã¨ãªããå¤ããã£ããã£ã°ã«ã¼ããã¾ãã¯ãã£ããã£ã°ã«ã¼ããå®ç¾©ããã¦ããªããã° undefined
ã§ãã詳ããã¯ãã£ããã£ã°ã«ã¼ããåç
§ãã¦ãã ããã
indices
çç¥å¯
ãã®ããããã£ã¯ d
ãã©ã°ãè¨å®ããã¦ããå ´åã«ã®ã¿åå¨ãã¾ããããã¯é
åã§ãããããã®è¦ç´ ã¯é¨åæååã®ä¸è´ããå¢çã表ãã¾ãããã®é
åã®ããããã®è¦ç´ ã®ã¤ã³ããã¯ã¹ã¯ exec()
ãè¿ãé
åã®ä¸ã®ä¸è´ããé¨åæååã®ã¤ã³ããã¯ã¹ã«å¯¾å¿ãã¾ããè¨ãæããã°ãæåã® indices
é
ç®ã¯ç
§åããæååå
¨ä½ã表ãã2 ã¤ç®ã® indices
é
ç®ã¯æåã®ãã£ããã£ã°ã«ã¼ããªã©ã表ãã¾ããåé
ç®èªèº«ã¯ 2 è¦ç´ ã®é
åã§ãæåã®æ°åã¯ä¸è´ã®éå§ã¤ã³ããã¯ã¹ã表ãã2 ã¤ç®ã®æ°åã¯ãã®çµäºã¤ã³ããã¯ã¹ã表ãã¾ãã
é
å indices
ã«ã¯ããã« groups
ããããã£ãããããã¹ã¦ã®ååä»ããã£ããã£ã°ã«ã¼ãã® null
ãããã¿ã¤ããªãã¸ã§ã¯ããä¿æãã¾ãããã¼ã¯ãã£ããã£ã°ã«ã¼ãã®ååã§ãããããããã®å¤ã¯ 2 ã¤è¦ç´ ã®é
åã§ãæåã®æ°åã¯ãã£ããã£ã°ã«ã¼ãã®å§ããã¤ã³ããã¯ã¹ã 2 ã¤ç®ã®æ°åã¯çµããã®ã¤ã³ããã¯ã¹ã§ããæ£è¦è¡¨ç¾ã«ååä»ããã£ããã£ã°ã«ã¼ããå«ã¾ãã¦ããªãå ´åã groups
㯠undefined
ã¨ãªãã¾ãã
JavaScript ã® RegExp
ãªãã¸ã§ã¯ãã¯ã global ã¾ã㯠sticky ãã©ã°ãè¨å®ããã¦ããå ´åï¼ä¾ãã° /foo/g
ã /foo/y
ï¼ã¯ã¹ãã¼ããã«ã«ãªãã¾ããããã¯ååã®ä¸è´ä½ç½®ã lastIndex
ã«æ ¼ç´ãã¾ãããããå
é¨çã«ä½¿ç¨ãããã¨ã§ã exec()
ã¯ããã¹ãã®æååå
ã§ï¼ãã£ããã£ã°ã«ã¼ãã®ããï¼è¤æ°ã®ä¸è´ãå復å¦çãããã¨ãã§ãã¾ããããã¯åãªãæååã®ä¸è´ãåå¾ãã String.prototype.match()
ã¨ã¯å¯¾ç
§çã§ãã
exec()
ã使ç¨ããå ´åãã°ãã¼ãã«ãã©ã°ã¯ sticky ãã©ã°ãè¨å®ããã¦ããã¨ãã«ã¯å½±é¿ãã¾ãããç
§åã¯å¸¸ã«ç²ççã«è¡ããã¾ãã
exec()
ã¯æ£è¦è¡¨ç¾ã®ããªããã£ãã¡ã½ããã§ããä»ã®å¤ãã®æ£è¦è¡¨ç¾ã¡ã½ããã¯ãå
é¨çã« exec()
ãå¼ã³åºãã¾ãããã㯠[Symbol.replace]()
ã®ãããªæååã®ã¡ã½ãããããå¼ã³åºããã¾ããexec()
èªä½ã¯å¼·åã§ããï¼ããã¦æãå¹ççã§ãï¼ãå¤ãã®å ´åãæãæç¢ºã«æå³ãä¼ãããã®ã§ã¯ããã¾ããã
RegExp.prototype.test()
ã使ç¨ãã¦ãã ãããString.prototype.match()
ã使ç¨ãã¦ãã ãããããã«ã String.prototype.matchAll()
ã¯ãä¸è´ããæååãå復å¦çãããã¨ã§ãï¼ãã£ããã£ã°ã«ã¼ããæã¤ï¼æååã®è¤æ°ã®é¨åã®ç
§åãç°¡ç¥åããã®ã«å½¹ç«ã¡ã¾ããString.prototype.search()
ã¡ã½ããã使ç¨ãã¦ãã ãããæ¬¡ã®ä¾ãæ³åãã¦ã¿ã¦ãã ããã
// "quick brown" ã®å¾ã« "jumps" ãæ¥ããã®ãããã®éã®æåãç¡è¦ãã¦ä¸è´ããã¾ãã
// "brown" 㨠"jumps" ãåå¾ãã¾ãã
// 大æåã¨å°æåã¯åºå¥ãã¾ããã
const re = /quick\s(?<color>brown).+?(jumps)/dgi;
const result = re.exec("The Quick Brown Fox Jumps Over The Lazy Dog");
ãã®ã¹ã¯ãªããå®è¡å¾ã® result
ã®ç¶æ
ã¯æ¬¡ã®ããã«ãªãã¾ãã
[0]
"Quick Brown Fox Jumps"
[1]
"Brown"
[2]
"Jumps"
index
4
indices
[[4, 25], [10, 15], [20, 25]]
groups: { color: [10, 15 ]}
input
"The Quick Brown Fox Jumps Over The Lazy Dog"
groups
{ color: "brown" }
ããã«å ãã¦ããã®æ£è¦è¡¨ç¾ãã°ãã¼ãã«ã§ããããã re.lastIndex
㯠25
ã«è¨å®ããã¾ãã
æ£è¦è¡¨ç¾ã§ g
ãã©ã°ã使ç¨ããå ´åãåãæååã§æåããä¸è´ãè¦ã¤ããããã« exec()
ã¡ã½ãããè¤æ°å使ããã¨ãã§ãã¾ãããã®éãæ¤ç´¢ã¯æ£è¦è¡¨ç¾ãªãã¸ã§ã¯ãã® lastIndex
ããããã£ã§æå®ãããä½ç½®ã® str
ã®é¨åæååããå§ã¾ãã¾ãï¼test()
ã lastIndex
ããããã£ã®ä½ç½®ããå§ãã¾ãï¼ããªããå¥ãªæååãæ¤ç´¢ããå ´åã§ã lastIndex
ããããã£ã¯ãªã»ããããããæ¢åã® lastIndex
ããæ¤ç´¢ãå§ãã¾ãã
ä¾ãã°ã次ã®ã¹ã¯ãªãããèãã¦ã¿ã¦ãã ããã
const myRe = /ab*/g;
const str = "abbcdefabh";
let myArray;
while ((myArray = myRe.exec(str)) !== null) {
let msg = `${myArray[0]} ãè¦ã¤ãã¾ããã`;
msg += `次ã®ç
§å㯠${myRe.lastIndex} ããã§ãã`;
console.log(msg);
}
ãã®ã¹ã¯ãªããã¯ä»¥ä¸ã®ããã¹ãã表示ãã¾ãã
abb ãè¦ã¤ãã¾ãããæ¬¡ã®ç §å㯠3 ããã§ãã ab ãè¦ã¤ãã¾ãããæ¬¡ã®ç §å㯠9 ããã§ãã
è¦å: ç¡éã«ã¼ãã«é¥ãè½ã¨ãç©´ãããããããã¾ãã
RegExp
ã³ã³ã¹ãã©ã¯ã¿ã¼ï¼ã while
æ¡ä»¶å
ã«é
ç½®ããªãã§ãã ãããå復å¦çãããã³ã«æ£è¦è¡¨ç¾ãå使ããã lastIndex
ããªã»ããããã¾ããg
) ãè¨å®ããã¦ãããã確èªãã¦ãã ããããããªã㨠lastIndex
ãé²è¡ããªããªãã¾ãã/^/gm
ï¼ã«ä¸è´ããå¯è½æ§ãããå ´åãåãä½ç½®ã«çã¾ãã®ãé¿ããããã«ã lastIndex
ãæ¯åæåã§å¢ããã¦ãã ãããé常ããã®ãããªã³ã¼ãã String.prototype.matchAll()
ã§ç½®ãæãããã¨ã§ãã¨ã©ã¼ã®å¯è½æ§ãä¸ãããã¨ãã§ãã¾ãã
RegExp
ãªãã¸ã§ã¯ãã使ããã« exec()
ã使ç¨ãããã¨ãã§ãã¾ãã
const matches = /(hello \S+)/.exec("This is a hello world!");
console.log(matches[1]);
ããã§ 'hello world!' ãå«ãã ã¡ãã»ã¼ã¸ããã°åºåãã¾ãã
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ å ±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