å符类å¯ä»¥åºååç§å符ï¼ä¾å¦åºå忝忰åã
å°è¯ä¸ä¸const chessStory = "He played the King in a8 and she moved her Queen in c2.";
const regexpCoordinates = /\w\d/g;
console.log(chessStory.match(regexpCoordinates));
// Expected output: Array [ 'a8', 'c2']
const moods = "happy ð, confused ð, sad ð¢";
const regexpEmoticons = /[\u{1F600}-\u{1F64F}]/gu;
console.log(moods.match(regexpEmoticons));
// Expected output: Array ['ð', 'ð', 'ð¢']
ç±»å å符 å«ä¹ [xyz]
[a-c]
ä¸ä¸ªå符类ãå¹é å å«å¨æ¹æ¬å·ä¸çä»»ä½å符ãä½ å¯ä»¥ä½¿ç¨è¿å符æå®å符èå´ï¼ä½å¦æè¿å符åºç°å¨æ¹æ¬å·ä¸ç第ä¸ä¸ªææåä¸ä¸ªå符ï¼åå°å ¶è§ä¸ºåé¢è¿å符ï¼ä½ä¸ºæ®éå符å å«å¨å符类ä¸ã
ä¾å¦ï¼[abcd]
ä¸ [a-d]
ç¸åãå®ä»¬å¹é
âbrisketâä¸çâbâåâchopâä¸çâcâã
ä¾å¦ï¼[abcd-]
å [-abcd]
å¹é
âbrisketâä¸çâbâãâchopâä¸çâcâåânon-profitâä¸çâ-âï¼è¿å符ï¼ã
ä¾å¦ï¼[\w-]
ä¸ [A-Za-z0-9_-]
ç¸åãå®ä»¬é½å¹é
âbrisketâä¸çâbâãâchopâä¸çâcâåânon-profitâä¸çânâã
[^xyz]
[^a-c]
ä¸ä¸ªå¦å®æè¡¥å
çå符类ãä¹å°±æ¯è¯´ï¼å®å¹é
æªå
å«å¨æ¹æ¬å·ä¸çä»»ä½å符ãä½ å¯ä»¥ä½¿ç¨è¿å符æå®å符èå´ï¼ä½å¦æè¿å符åºç°å¨^
åç第ä¸ä¸ªåç¬¦ææ¹æ¬å·ä¸çææåä¸ä¸ªå符ï¼åå°å
¶è§ä¸ºåé¢è¿å符ï¼ä½ä¸ºæ®éå符å
å«å¨å符类ä¸ãä¾å¦ï¼[^abc]
ä¸ [^a-c]
ç¸åãå®ä»¬é¦å
å¹é
âbaconâä¸çâoâåâchopâä¸çâhâã
夿³¨ï¼ ^ å符ä¹å¯ä»¥è¡¨ç¤ºè¾å ¥çå¼å§ã
.
æä¸åå«ä¹ä¹ä¸ï¼
\n
, \r
, \u2028
or \u2029
. ä¾å¦ï¼/.y/
å¨âyes make my dayâä¸å¹é
âmyâåâayâï¼è䏿¯âyesâãéè¦æ³¨æçæ¯ï¼m
multiline æ å¿ä¸ä¼æ¹åç¹çè¡ä¸ºãå æ¤ï¼è¦è·¨å¤è¡å¹é
ä¸ä¸ªæ¨¡å¼ï¼å¯ä»¥ä½¿ç¨å符é[^]
âå®å°å¹é
ä»»ä½å符ï¼å
æ¬æ°è¡ã
s
âdotAllâæ å¿å
许ç¹ä¹å¹é
è¡ç»æ¢ç¬¦ã
\d
å¹é
任使°å (é¿æä¼¯æ°å)ãç¸å½äº [0-9]
ãä¾å¦ï¼/\d/
æ /[0-9]/
å¹é
âB2is the suite numberâä¸çâ2âã
\D
å¹é
ä»»ä½éæ°å (é¿æä¼¯æ°å) çå符ãç¸å½äº[^0-9]
ãä¾å¦ï¼/\D/
æè
/[^0-9]/
å¹é
âB2 is the suite numberâä¸çâBâã
\w
å¹é
åºæ¬æä¸åæ¯ä¸çä»»ä½åæ¯æ°åå符ï¼å
æ¬ä¸å线ãç¸å½äº [A-Za-z0-9_]
ãä¾å¦ï¼/\w/
å¹é
âappleâä¸çâaâï¼å¹é
â$5.28âä¸çâ5âï¼å¹é
â3Dâä¸çâ3âï¼ä»¥åå¹é
âÃmanuelâä¸çâmâã
\W
å¹é
ä»»ä½ä¸æ¯æ¥èªåºæ¬æä¸åæ¯çåè¯å符ãç¸å½äº [^A-Za-z0-9_]
ãä¾å¦ï¼/\W/
æè
/[^A-Za-z0-9_]/
å¹é
â50%âä¸çâ%âï¼ä»¥åå¹é
âÃmanuelâä¸çâÃâã
\s
å¹é
å个空ç½å符ï¼å
æ¬ç©ºæ ¼ãå¶è¡¨ç¬¦ãæ¢é¡µç¬¦ãæ¢è¡ç¬¦åå
¶ä» Unicode ç©ºæ ¼ãç¸å½äº [\f\n\r\t\v\u0020\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
ãä¾å¦ï¼\s\w*/
å¹é
âfoo barâä¸çâbarâã
\S
å¹é
é¤ç©ºæ ¼ä»¥å¤çå个å符ãç¸å½äº [^\f\n\r\t\v\u0020\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]
ãä¾å¦ï¼/\S\w*/
å¹é
âfoo barâä¸çâfooâã
\t
å¹é
æ°´å¹³å¶è¡¨ç¬¦ã \r
å¹é
å车符ã \n
å¹é
æ¢è¡ç¬¦ã \v
å¹é
åç´å¶è¡¨ç¬¦ã \f
å¹é
æ¢é¡µç¬¦ã [\b]
å¹é
éæ ¼é®ãå¦æä½ æ£å¨å¯»æ¾åè¯è¾¹çå符ï¼\b
ï¼ï¼è¯·åé
æè¨ã \0
å¹é
ä¸ä¸ª NUL å符ãä¸è¦å¨æ¤åé¢å ä¸å¦ä¸ä¸ªæ°åã \cX
ä½¿ç¨æå
¥ç¬¦å·å¹é
æ§å¶å符ï¼å
¶ä¸âXâæ¯ AâZ ä¸çä¸ä¸ªåæ¯ï¼å¯¹åºäºä»£ç ç¹ U+0001
âU+001F
ï¼ãä¾å¦ï¼/\cM\cJ/
å¹é
â\r\nâã
\xhh
å¹é
ä¸ä»£ç hh
ï¼ä¸¤ä¸ªåå
è¿å¶æ°åï¼å¯¹åºçå符ã \uhhhh
å¹é
ä¸å¼ hhhh
ï¼å个åå
è¿å¶æ°åï¼å¯¹åºç UTF-16 代ç åå
ã \u{hhhh} æ \u{hhhhh}
ï¼ä»
å½è®¾ç½®äº u
æ å¿æ¶ãï¼å¹é
ä¸ Unicode å¼ U+hhhh
æ U+hhhhh
ï¼åå
è¿å¶æ°åï¼å¯¹åºçå符ã \p{UnicodeProperty}
ï¼\P{UnicodeProperty}
æ ¹æ®å符ç Unicode åç¬¦å±æ§å¹é
å符ï¼ä¾å¦ï¼ä»
å¹é
表æ
符å·åç¬¦ãæ¥æçååå符ã䏿æ±ååç¬¦ææ¥ææ±åå符çï¼ã \
æç¤ºåºç¹æ®å¤çæâ转ä¹âåé¢çå符ãå®è¡¨ç°ä¸ºä¸¤ç§æ¹å¼ä¹ä¸ã
/b/
å¹é
å符âbâãéè¿å¨âbâå颿¾ç½®åææ ï¼å³ä½¿ç¨ /\b/
ï¼å符åå¾ç¹æ®ä»¥è¡¨ç¤ºå¹é
åè¯è¾¹çã/a*/
示å¹é
0 个æå¤ä¸ªâaâãè¦ä»åé¢ä¸å¹é
*
éå¨å
¶åé¢å ä¸åææ ï¼ä¾å¦ï¼/a\*/
å¹é
âa*âã夿³¨ï¼è¦ä»åé¢ä¸å¹é
æ¤å符ï¼è¯·å°å
¶è½¬ä¹ãæ¢å¥è¯è¯´å°±æ¯æç´¢ \
éè¦ä½¿ç¨ /\\/
ã
x|y
æåï¼å¹é
âxâæâyâãæ¯ä¸ªç±ç®¡é符 (|
) åéçé¨å称为ä¸ä¸ªå¯é项ãä¾å¦ï¼/green|red/
å¹é
âgreen appleâä¸çâgreenâåâred appleâä¸çâredâã
夿³¨ï¼ æåæ¯æå®âä¸ç»éæ©âçå¦ä¸ç§æ¹å¼ï¼ä½å®ä¸æ¯å符类ãæå䏿¯ååçââä½ éè¦ä½¿ç¨ç»ä½¿å
¶æä¸ºä¸ä¸ªæ´å¤§ç模å¼çä¸é¨åã[abc]
å¨åè½ä¸çåäº (?:a|b|c)
ã
const randomData = "015 354 8787 687351 3512 8735";
const regexpFourDigits = /\b\d{4}\b/g;
// \b 表示边çï¼å³ä¸è¦å¨åè¯ä¸é´å¼å§å¹é
ï¼
// \d{4} 表示ä¸ä¸ªæ°åï¼å次
// \b 表示å¦ä¸ä¸ªè¾¹çï¼å³ä¸è¦å¨åè¯ä¸é´ç»æå¹é
ï¼
console.table(randomData.match(regexpFourDigits));
// ['8787', '3512', '8735']
寻æ¾ä»¥ A å¼å¤´çæä¸åæ¯åè¯
const aliceExcerpt =
"I'm sure I'm not Ada,' she said, 'for her hair goes in such long ringlets, and mine doesn't go in ringlets at all.";
const regexpWordStartingWithA = /\b[aA]\w+/g;
// \b 表示边çï¼å³ä¸è¦å¨åè¯ä¸é´å¼å§å¹é
ï¼
// [aA] è¡¨ç¤ºåæ¯ a æ A
// \w+ 表示任ä½*æä¸åæ¯*å符ï¼å¤æ¬¡
console.table(aliceExcerpt.match(regexpWordStartingWithA));
// ['Ada', 'and', 'at', 'all']
寻æ¾ä¸ä¸ª Unicode å符çåè¯
ä»£æ¿æä¸åæ¯ï¼æä»¬å¯ä»¥ä½¿ç¨ä¸ç³»å Unicode å符æ¥è¯å«ä¸ä¸ªåè¯ï¼ä»èè½å¤å¤çå ¶ä»è¯è¨çææ¬ï¼å¦ä¸æãä¿è¯æé¿æä¼¯è¯ï¼ãUnicode çâåºæ¬å¤æç§å¹³é¢ï¼Basic Multilingual Planeï¼âå å«ä¸çåå°ä½¿ç¨ç大é¨ååç¬¦ï¼æä»¬å¯ä»¥ä½¿ç¨å符类åèå´æ¥å¹é ç¨è¿äºå符ç¼åçåè¯ã
const nonEnglishText = "ç±ä¸½ä¸ 梦游 ä»å¢";
const regexpBMPWord = /([\u0000-\u0019\u0021-\uFFFF])+/gu;
// åºæ¬å¤æç§å¹³é¢èå´æ¯ U+0000 å° U+FFFF ä½ç©ºæ ¼æ¯ U+0020
console.table(nonEnglishText.match(regexpBMPWord));
["ç±ä¸½ä¸", "梦游", "ä»å¢"];
计ç®å
é³ä¸ªæ°
const aliceExcerpt =
"There was a long silence after this, and Alice could only hear whispers now and then.";
const regexpVowels = /[AEIOUYaeiouy]/g;
console.log("å
鳿°ï¼", aliceExcerpt.match(regexpVowels).length);
// å
鳿°ï¼26
åè§
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