éè¯è¡¨ç¤ºè¦å¹é çå符æè¡¨è¾¾å¼çæ°éã
å°è¯ä¸ä¸const ghostSpeak = "booh boooooooh";
const regexpSpooky = /bo{3,}h/;
console.log(ghostSpeak.match(regexpSpooky));
// Expected output: Array ["boooooooh"]
const modifiedQuote = "[He] ha[s] to go read this novel [Alice in Wonderland].";
const regexpModifications = /\[.*?\]/g;
console.log(modifiedQuote.match(regexpModifications));
// Expected output: Array ["[He]", "[s]", "[Alice in Wonderland]"]
const regexpTooGreedy = /\[.*\]/g;
console.log(modifiedQuote.match(regexpTooGreedy));
// Expected output: Array ["[He] ha[s] to go read this novel [Alice in Wonderland]"]
ç±»å
夿³¨ï¼ å¨ä¸æä¸ï¼é¡¹ä¸ä» æå个å符ï¼è¿å æ¬å符类ãç»åååå¼ç¨ã
åç¬¦é æä¹x*
å°åé¢ç项âxâå¹é
0 æ¬¡ææ´å¤æ¬¡ãä¾å¦ï¼/bo*/
å¹é
âA ghost booooedâä¸çâbooooâåâA bird warbledâä¸çâbâï¼ä½å¨âA goat gruntâ䏿²¡æå¹é
ã
x+
å°åä¸é¡¹âxâå¹é
1 æ¬¡ææ´å¤æ¬¡ãçä»·äº {1,}
ãä¾å¦ï¼/a+/
å¹é
âcandyâä¸çâaâåâcaaaaaaandyâä¸çææâaâã
x?
å°åé¢ç项âxâå¹é
0 æ 1 次ãä¾å¦ï¼/e?le?/
å¹é
âangelâä¸çâelâåâangleâä¸çâleâã
妿ç«å³å¨ä»»ä½ *
ã+
ã?
æ {}
éè¯ä¹å使ç¨ï¼å使éè¯å为é贪婪å¹é
ï¼å¹é
æå°æ¬¡æ°ï¼ï¼è䏿¯é»è®¤ç贪婪å¹é
ï¼å¹é
æå¤§æ¬¡æ°ï¼ã
x{n}
å
¶ä¸ânâæ¯ä¸ä¸ªéè´æ´æ°ï¼ä¸åä¸é¡¹âxâè³å°å¹é
ânâæ¬¡ãä¾å¦ï¼/a{2}/
ä¸å¹é
âcandyâä¸çâaâï¼ä½å®å¹é
âcaandyâä¸çææâaâï¼ä»¥åâcaaandyâä¸çå两个âaâã
x{n,}
å
¶ä¸ânâæ¯ä¸ä¸ªéè´æ´æ°ï¼ä¸åä¸é¡¹âxâè³å°å¹é
ânâæ¬¡ãä¾å¦ï¼/a{2ï¼}/
ä¸å¹é
âcandyâä¸çâaâï¼ä½å¹é
âcaandyâåâcaaaaaaandyâä¸çææ aã
x{n,m}
å
¶ä¸ânâåâmâ为éè´æ´æ°ï¼å¹¶ä¸ m >= n
ãä¸é¡¹âxâè³å°å¹é
ânâæ¬¡ï¼è³å¤å¹é
âmâæ¬¡ãä¾å¦ï¼/a{1,3}/
ä¸å¹é
âcndyâä¸çä»»ä½å
容ï¼èå¹é
âcandyâä¸çâaâãâcaandyâä¸ç两个âaâ以åâcaaaaaandyâä¸çåä¸ä¸ªâaâã请注æï¼å¨å¹é
âcaaaaaandyâæ¶ï¼å¹é
çæ¯âaaaâï¼å°½ç®¡åå§åç¬¦ä¸²ä¸ææ´å¤çâaâã
x*?
x+?
x??
x{n}?
x{n,}?
x{n,m}?
é»è®¤æ
åµä¸ï¼å *
å +
è¿æ ·çéè¯æ¯â贪婪çâï¼è¿æå³çå®ä»¬è¯å¾å¹é
å°½å¯è½å¤çå符串ãéè¯åé¢çå符 ?
使éè¯âä¸è´ªå©ªâï¼å®ä¸æ¦æ¾å°å¹é
å°±ä¼åæ¢ãä¾å¦ï¼ç»å®ä¸ä¸ªå符串âsome <foo> <bar> new </bar> </foo> thingâ:
/<.*>/
å°å¹é
â<foo> <bar> new </bar> </foo>â/<.*?>/
å°å¹é
â<foo>âconst wordEndingWithAs = /\w+a+\b/;
const delicateMessage = "This is Spartaaaaaaa";
console.table(delicateMessage.match(wordEndingWithAs)); // [ "Spartaaaaaaa" ]
ç»è®¡åè¯
const singleLetterWord = /\b\w\b/g;
const notSoLongWord = /\b\w{2,6}\b/g;
const longWord = /\b\w{13,}\b/g;
const sentence = "Why do I have to learn multiplication table?";
console.table(sentence.match(singleLetterWord)); // ["I"]
console.table(sentence.match(notSoLongWord)); // [ "Why", "do", "have", "to", "learn", "table" ]
console.table(sentence.match(longWord)); // ["multiplication"]
å¯éå符
const britishText = "He asked his neighbour a favour.";
const americanText = "He asked his neighbor a favor.";
const regexpEnding = /\w+ou?r/g;
// \w+ ä¸ä¸ªå以ä¸åæ¯
// o è·é忝âoâï¼
// u? å¯è½è·é忝âuâ
// r è·é忝ârâ
console.table(britishText.match(regexpEnding));
// ["neighbour", "favour"]
console.table(americanText.match(regexpEnding));
// ["neighbor", "favor"]
贪婪å¹é
ä¸é贪婪å¹é
const text = "I must be getting somewhere near the center of the earth.";
const greedyRegexp = /[\w ]+/;
// [\w ] ä¸ä¸ªæä¸åæ¯æä¸ä¸ªç©ºæ ¼
// + å¹é
䏿¬¡å以ä¸
console.log(text.match(greedyRegexp)[0]);
// "I must be getting somewhere near the center of the earth"
// å ä¹ææææ¬é½å¹é
ï¼é¤äºç¹å符ï¼
const nonGreedyRegexp = /[\w ]+?/; // 注æé®å·
console.log(text.match(nonGreedyRegexp));
// "I"
// å°½å¯è½å°çå¹é
åè§
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