ã¢ãµã¼ã·ã§ã³ã«ã¯ã è¡ãåèªã®å é ã»æ«å°¾ã示ãå¢çããï¼å èªã¿ãå¾èªã¿ãæ¡ä»¶å¼ãå«ãï¼ä½ããã®æ¹æ³ã§ç §åãå¯è½ãªãã¨ã示ãããã®ä»ã®ãã¿ã¼ã³ãå«ã¾ãã¾ãã
試ãã¦ã¿ã¾ãããconst text = "A quick fox";
const regexpLastWord = /\w+$/;
console.log(text.match(regexpLastWord));
// Expected output: Array ["fox"]
const regexpWords = /\b\w+\b/g;
console.log(text.match(regexpWords));
// Expected output: Array ["A", "quick", "fox"]
const regexpFoxQuality = /\w+(?= fox)/;
console.log(text.match(regexpFoxQuality));
// Expected output: Array ["quick"]
ç¨®é¡ å¢çåã®ã¢ãµã¼ã·ã§ã³ æå æå³ ^
å
¥åéå§å¢çã¢ãµã¼ã·ã§ã³: å
¥åã®å
é ã«ä¸è´ãã¾ããè¤æ°è¡ãã©ã° (multiline
, m) ãæå¹ã§ããå ´åãæ¹è¡æåã®ç´å¾ã«ãä¸è´ãã¾ããä¾ãã° /^A/
㯠"an A" ã® "A" ã«ã¯ä¸è´ãã¾ãããã"An A" ã®å
é ã® "A" ã«ã¯ä¸è´ãã¾ãã
ã¡ã¢: ãã®æåã¯ãæåã¯ã©ã¹ãã¿ã¼ã³ã®å é ã«ããå ´åã¯ç°ãªãæå³ãæã¡ã¾ãã
$
å
¥åæ«å°¾å¢çã¢ãµã¼ã·ã§ã³: å
¥åã®æ«å°¾ã«ä¸è´ãã¾ããè¤æ°è¡ãã©ã° (multiline
, m) ãæå¹ã§ããå ´åãã¯ãæ¹è¡æåã®ç´åã«ãä¸è´ãã¾ããä¾ãã° /t$/
㯠"eater" ã® "t" ã«ã¯ä¸è´ãã¾ãããã"eat" ã® "t" ã«ã¯ä¸è´ãã¾ãã
\b
åèªå¢çã¢ãµã¼ã·ã§ã³: åèªã®å¢çã«ä¸è´ãã¾ããããã¯ãåèªæ§ææåã¨å¾ã«ç¶ãéåèªæ§ææåã®éãã¾ãã¯éåèªæ§ææåã¨å¾ã«ç¶ãåèªæ§ææåã®éãã¾ãã¯æååã®å é ã»æ«å°¾ã§ããåèªã®åºåãã¯ä¸è´ãããæåãã§ã¯ããã¾ãããã¢ã³ã«ã¼ã®ããã«ãåèªã®åºåãã¯ä¸è´ããé¨åã«å«ã¾ãã¾ãããè¨ãæããã¨ãä¸è´ããåèªã®åºåãã®é·ã㯠0 ã§ãã
ä¾:
/\bm/
㯠"moon" ã® "m" ã«ä¸è´ãã¾ãã/oo\b/
㯠"moon" ã® "oo" ã«ä¸è´ãã¾ããããã㯠"oo" ã® å¾ã«åèªæ§ææåã§ãã "n" ãç¶ãã¦ããããã§ãã/oon\b/
㯠"moon" ã® "oon" ã«ä¸è´ãã¾ããããã¯ãæååã®çµç«¯ã§ãã£ã¦ãå¾ã«åèªæ§ææåãç¶ãã¦ããªãããã§ãã/\w\b\w/
ã¯ã©ãã«ãä¸è´ããªãã§ããããåèªæ§ææåã®å¾ã«éåèªæ§ææåã¨åèªæ§ææåã®ä¸¡æ¹ãç¶ããã¨ã¯ããããªãããã§ããããã¯ã¹ãã¼ã¹æå ([\b]
) ã«ã¤ãã¦ã¯æåã¯ã©ã¹ãè¦ã¦ãã ããã
\B
éåèªå¢çã¢ãµã¼ã·ã§ã³: åèªã®åºåã以å¤ã«ä¸è´ãã¾ããããã¯ãåã®æåã¨æ¬¡ã®æåãåã種é¡ã§ããä½ç½®ã®ãã¨ã§ãã2 ã¤ã®æåã®éã 2 ã¤ã®ç©ºç½ã®éãªã©ãã©ã¡ããåèªæ§ææåãããããã¯ã©ã¡ããéåèªæ§ææåã§ãªããã°ãªãã¾ãããæååã®å
é ã¨æ«å°¾ã¯ãéåèªæ§ææåã¨ã¿ãªããã¾ããä¸è´ããåèªã®åºåãã¨åãããã«ãä¸è´ããéåèªã®åºåããä¸è´ã«å«ã¾ãã¾ãããä¾ãã°ã /\Bon/
㯠"at noon" ã® "on" ã«ã /ye\B/
㯠"possibly yesterday" ã® "ye" ã«ä¸è´ãã¾ãã
ã¡ã¢: ?
ã®æåã¯æ°éåã¨ãã¦ã使ç¨ããã¾ãã
x(?=y)
å
èªã¿ã¢ãµã¼ã·ã§ã³: "x" ã®å¾ã« "y" ãç¶ãå ´åã®ã¿ "x" ã«ä¸è´ãã¾ããä¾ãã°ã /Jack(?=Sprat)/
㯠"Jack" ã®å¾ã« "Sprat" ãç¶ãå ´åã®ã¿ä¸è´ãã¾ãã/Jack(?=Sprat|Frost)/
㯠"Jack" ã®å¾ã« "Sprat" ã¾ã㯠"Frost" ãç¶ãå ´åã®ã¿ä¸è´ãã¾ãããããã "Sprat" ã "Frost" ãä¸è´ããçµæã«ã¯å«ã¾ãã¾ããã
x(?!y)
å¦å®å
èªã¿ã¢ãµã¼ã·ã§ã³: "x" ã®å¾ã« "y" ãç¶ãã¦ããªãå ´åã®ã¿ "x" ã«ä¸è´ãã¾ããä¾ãã°ã /\d+(?!\.)/
ã¯æ°åã®å¾ã«å°æ°ç¹ãç¶ããªãå ´åã®ã¿ä¸è´ãã¾ãã/\d+(?!\.)/.exec('3.141')
㯠"141" ã«ã¯ä¸è´ãã¾ããã "3" ã«ã¯ä¸è´ãã¾ããã
(?<=y)x
å¾èªã¿ã¢ãµã¼ã·ã§ã³: "x" ã®åã« "y" ãããå ´åã®ã¿ "x" ã«ä¸è´ãã¾ããä¾ãã°ã/(?<=Jack)Sprat/
ã¯ã "Jack" ãå
è¡ããå ´åã®ã¿ã "Sprat" ã«ä¸è´ãã¾ãã /(?<=Jack|Tom)Sprat/
ã¯ã "Jack" ã "Tom" ãå
è¡ããå ´åã®ã¿ã "Sprat" ã«ä¸è´ãã¾ãããããã "Jack" ã "Tom" ãä¸è´ããçµæã«ã¯å«ã¾ãã¾ããã
(?<!y)x
å¦å®å¾èªã¿ã¢ãµã¼ã·ã§ã³: "x" ã®åã« "y" ããªãå ´åã®ã¿ "x" ã«ä¸è´ãã¾ããä¾ãã°ã /(?<!-)\d+/
ã¯ãæ°åã®åã«ãã¤ãã¹è¨å·ããªãå ´åã®ã¿ãæ°åã«ä¸è´ãã¾ãã /(?<!-)\d+/.exec('3')
㯠"3" ã«ä¸è´ãã¾ãã /(?<!-)\d+/.exec('-3')
ã§ã¯æ°åã®åã«ãã¤ãã¹è¨å·ããããããä¸è´ãããã®ã¯è¦ã¤ããã¾ããã
// ããããæååãä¿®æ£ããããã«æ£è¦è¡¨ç¾ã®å¢çãå©ç¨ãã¾ãã
buggyMultiline = `tey, ihe light-greon apple
tangs on ihe greon traa`;
// 1) æååã®æåã¨æ¹è¡ã®ç´å¾ã®ä¸è´ãä¿®æ£ããããã« ^ ãå©ç¨ãã¾ãã
buggyMultiline = buggyMultiline.replace(/^t/gim, "h");
console.log(1, buggyMultiline); // 'tey' => 'hey' ã«ã 'tangs' => 'hangs' ã«ä¿®æ£ãã¾ãã 'traa' ã¯å¯¾è±¡å¤ã§ãã
// 2) ããã¹ãã®æ«å°¾ãä¿®æ£ããããã« $ ãå©ç¨ãã¾ãã
buggyMultiline = buggyMultiline.replace(/aa$/gim, "ee.");
console.log(2, buggyMultiline); // 'traa' => 'tree.' ã«ä¿®æ£ãã¾ãã
// 3) åèªã¨ç©ºç½ã®éã®å¢çã®å³ã®æåã«ä¸è´ãããããã« \b ãå©ç¨ãã¾ãã
buggyMultiline = buggyMultiline.replace(/\bi/gim, "t");
console.log(3, buggyMultiline); // 'ihe' => 'the' ã«ä¿®æ£ãã¾ããã'light'ã¯å¯¾è±¡å¤ã§ãã
// 4) ã¨ã³ãã£ãã£ã®å¢çå
ã®æåã«ä¸è´ããããã« \B ãå©ç¨ãã¾ãã
fixedMultiline = buggyMultiline.replace(/\Bo/gim, "e");
console.log(4, fixedMultiline); // 'greon' => 'green' ã«ä¿®æ£ãã¾ããã'on' ã¯å¯¾è±¡å¤ã§ãã
^ å¶å¾¡æåãå©ç¨ããå
¥åã®å
é ã¨ã®ç
§å
^
ã¯ãé常ãå
¥åã®å
é ã«ä¸è´ãããããã«å©ç¨ãã¾ãããã®ä¾ã§ã¯ã/^A/
ã¨ããæ£è¦è¡¨ç¾ã§ 'A' ã§å§ã¾ããã«ã¼ããåå¾ãã¾ããããã§ã® ^
ã¯ãå
¥åã®å
é ã示ãã¨ããããã£ã 1 ã¤ã®å½¹å²ãæããã¦ãã¾ããé©åãªãã«ã¼ãã鏿ããããã« filter
ã¡ã½ããã¨ã¢ãã¼é¢æ°ãç¨ãã¾ãã
const fruits = ["Apple", "Watermelon", "Orange", "Avocado", "Strawberry"];
// /^A/ æ£è¦è¡¨ç¾ã§ 'A' ã§å§ã¾ããã«ã¼ãã鏿ãã¾ãã
// ããã§ã®'^' å¶å¾¡è¨å·ã¯ãå
¥åã®å
é ã«ä¸è´ãããã¨ãã 1 ã¤ã®å½¹å²ã ãã§å©ç¨ããã¦ãã¾ãã
const fruitsStartsWithA = fruits.filter((fruit) => /^A/.test(fruit));
console.log(fruitsStartsWithA); // [ 'Apple', 'Avocado' ]
2 çªç®ã®ä¾ã§ã® ^
ã¯ãå
¥åã®å
é ã¸ã®ä¸è´ã¨ãæåã¯ã©ã¹ã§ç¨ããããå ´åã®æåéåã®å¦å®ã¾ãã¯è£éåã¨ããã両æ¹ã§å©ç¨ããã¦ãã¾ãã
const fruits = ["Apple", "Watermelon", "Orange", "Avocado", "Strawberry"];
// /^[^A]/ ã¨ããæ£è¦è¡¨ç¾ã§ 'A' ã§å§ã¾ããªããã«ã¼ãã鏿ãã¾ãã
// ãã®ä¾ã§ã¯ã'^' å¶å¾¡è¨å·ã¯ 2 ã¤ã®æå³ã表ãã¦ãã¾ãã
// 1) å
¥åã®å
é ã«ä¸è´
// 2) [^A] ã¨ããæåéåã®å¦å®ã¾ãã¯è£éå
// ã¤ã¾ããè§æ¬å¼§ã§å²ã¾ããä¸ã«ãªããããããã®ã«ä¸è´ãã¾ãã
const fruitsStartsWithNotA = fruits.filter((fruit) => /^[^A]/.test(fruit));
console.log(fruitsStartsWithNotA); // [ 'Watermelon', 'Orange', 'Strawberry' ]
ãã以å¤ã®ä¾ã¯ å ¥åå¢çã¢ãµã¼ã·ã§ã³ã®ãªãã¡ã¬ã³ã¹ãåç §ãã¦ãã ããã
åèªã®å¢çã«ä¸è´ãã®ä¾ã§ã¯ã "en" ã¾ã㯠"ed" ã§çµããåèªãå«ãæç©ã®ååã«ãç §åãã¾ãã
const fruitsWithDescription = ["Red apple", "Orange orange", "Green Avocado"];
// åèªã®çµããã« 'en' ã¾ã㯠'ed' ãå«ãè¨è¿°ã鏿ãã¾ãã
const enEdSelection = fruitsWithDescription.filter((descr) =>
/(en|ed)\b/.test(descr),
);
console.log(enEdSelection); // [ 'Red apple', 'Green Avocado' ]
ãã以å¤ã®ä¾ã¯ åèªå¢çã¢ãµã¼ã·ã§ã³ã®ãªãã¡ã¬ã³ã¹ãåç §ãã¦ãã ããã
å èªã¿ã¢ãµã¼ã·ã§ã³ãã®ä¾ã¯ã "First" ã¨ããåèªã®å¾ã« "test" ã¨ããåèªãç¶ãå ´åã®ã¿ä¸è´ãã¾ããã"test" ã¯ç §åçµæã«å«ã¾ãã¾ããã
const regex = /First(?= test)/g;
console.log("First test".match(regex)); // [ 'First' ]
console.log("First peach".match(regex)); // null
console.log("This is a First test in a year.".match(regex)); // [ 'First' ]
console.log("This is a First peach in a month.".match(regex)); // null
ãã以å¤ã®ä¾ã¯ å èªã¿ã¢ãµã¼ã·ã§ã³ã®ãªãã¡ã¬ã³ã¹ãåç §ãã¦ãã ããã
åºæ¬çãªå¦å®å èªã¿ã¢ãµã¼ã·ã§ã³ä¾ãã°ã/\d+(?!\.)/
ã¯å°æ°ç¹ãå¾ã«ç¶ããªãæ°å¤ã«ã ãä¸è´ãã¾ãã/\d+(?!\.)/.exec('3.141')
㯠"141" ã«ä¸è´ãã¾ããã "3" ã«ã¯ä¸è´ãã¾ããã
console.log(/\d+(?!\.)/g.exec("3.141")); // [ '141', index: 2, input: '3.141' ]
ãã以å¤ã®ä¾ã¯ å èªã¿ã¢ãµã¼ã·ã§ã³ã®ãªãã¡ã¬ã³ã¹ãåç §ãã¦ãã ããã
ã¢ãµã¼ã·ã§ã³ã¨ç¯å²ã«ããã '?!' ã®çµã¿åããã®ç°ãªãæå³ã§ã®å©ç¨?!
ã®çµã¿åãããå©ç¨ããã¨ããã¢ãµã¼ã·ã§ã³ï¼/x(?!y)/
ãªã©ï¼ã¨æåã¯ã©ã¹ ï¼[^?!]
ãªã©ï¼ã§ã¯ç°ãªãæå³ãæã¡ã¾ãã
const orangeNotLemon =
"Do you want to have an orange? Yes, I do not want to have a lemon!";
// ã¢ãµã¼ã·ã§ã³ /x(?!y)/ ã¨ç¯å² /[^?!]/ ã§ã¯ '?!' ã®çµã¿åããã®å©ç¨ã¯ç°ãªãæå³ãæã¡ã¾ãã
const selectNotLemonRegex = /[^?!]+have(?! a lemon)[^?!]+[?!]/gi;
console.log(orangeNotLemon.match(selectNotLemonRegex)); // [ 'Do you want to have an orange?' ]
const selectNotOrangeRegex = /[^?!]+have(?! an orange)[^?!]+[?!]/gi;
console.log(orangeNotLemon.match(selectNotOrangeRegex)); // [ ' Yes, I do not want to have a lemon!' ]
å¾èªã¿ã¢ãµã¼ã·ã§ã³
ãã®ä¾ã§ã¯ã "orange" ã¨ããåèªã®åã« "ripe" ã¨ããåèªãããå ´åã®ã¿ã "apple" ã«ç½®ãæãã¾ãã
const oranges = ["ripe orange A", "green orange B", "ripe orange C"];
const newFruits = oranges.map((fruit) =>
fruit.replace(/(?<=ripe )orange/, "apple"),
);
console.log(newFruits); // ['ripe apple A', 'green orange B', 'ripe apple C']
ãã以å¤ã®ä¾ã¯ å¾èªã¿ã¢ãµã¼ã·ã§ã³ã®ãªãã¡ã¬ã³ã¹ãåç §ãã¦ãã ããã
é¢é£æ å ±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