Baseline Widely available *
RegExp
ìì±ìë í¨í´ì ì¬ì©í´ í
ì¤í¸ë¥¼ íë³í ë ì¬ì©í©ëë¤.
ì ê· ííìì ëí ìê°ë JavaScript ìë´ìì ì ê· ííì ì¥ì ì°¸ê³ íì¸ì. ì ê· ííì 구문ì ëí ë ìì¸í ì ë³´ë ì ê· ííì ì°¸ê³ ì를 ì°¸ê³ íì기 ë°ëëë¤.
ì¤ëª 리í°ë´ í기ë²ê³¼ ìì±ìRegExp
ê°ì²´ë 리í°ë´ í기ë²ê³¼ ìì±ìë¡ì¨ ìì±í ì ììµëë¤.
RegExp
ê°ì²´ ì¤ íë를 ë°ê³ ë ë²ì§¸ 매ê°ë³ìë¡ ì íì íëê·¸ 문ìì´ì ë°ìµëë¤.ë¤ìì ì¸ ííìì 모ë ê°ì ì ê· ííìì ìì±í©ëë¤.
const re = /ab+c/i; // 리í°ë´ í기ë²
// í¹ì
const re = new RegExp("ab+c", "i"); // 첫 ë²ì§¸ ì¸ìë¡ ë¬¸ìì´ í¨í´ê³¼ í¨ê» ìì±ì ì¬ì©
// í¹ì
const re = new RegExp(/ab+c/, "i"); // 첫 ë²ì§¸ ì¸ìë¡ ì ê· ííì 리í°ë´ê³¼ í¨ê» ìì±ì ì¬ì©
ì ê· ííìì ì¬ì©íë ¤ë©´ 먼ì ì ê· ííìì ì»´íì¼í´ì¼ í©ëë¤. ì´ ê³¼ì ì íµí´ ë³´ë¤ í¨ì¨ì ì¼ë¡ 매ì¹ì ìíí ì ììµëë¤. ì´ íë¡ì¸ì¤ì ëí ë³´ë¤ ìì¸í ë´ì©ì dotnet 문ììì íì¸í ì ììµëë¤.
리í°ë´ í기ë²ì ííìì´ íê°ë ë ì ê· ííìì´ ì»´íì¼ë©ëë¤. ë°ë©´ì RegExp
ê°ì²´ì ìì±ì new RegExp('ab+c')
ë ì ê· ííìì ë°íìì ì»´íì¼í©ëë¤.
ëì ì
ë ¥ìì ì ê·ìì ë¹ëíë ¤ë©´ RegExp()
ìì±ìì 첫 ë²ì§¸ ì¸ìë¡ ë¬¸ìì´ì ì¬ì©í©ëë¤.
ííì new RegExp(/ab+c/, flags)
ì 첫 ë²ì§¸ 매ê°ë³ìì ìì¤ì ë ë²ì§¸ 매ê°ë³ìì íë그를 ì¬ì©íì¬ ìë¡ì´ RegExp
를 ìì±í©ëë¤.
ìì±ì í¨ì를 ì¬ì©í ê²½ì°, ì¼ë° 문ìì´ ì´ì¤ì¼ì´í ê·ì¹(문ìì´ì í¬í¨ë ë í¹ì 문ì ìì \
ì¶ê°)ì´ íìí©ëë¤.
ì를 ë¤ì´ ë¤ì ë ì¤ì ëì¼í ì ê· ííìì ìì±í©ëë¤.
const re = /\w+/;
// í¹ì
const re = new RegExp("\\w+");
Perl ííì RegExp
ìì±
ì¼ë¶ RegExp
ìì±ì ê°ì ê°ì ëí´ ê¸´ ì´ë¦ê³¼ ì§§ì (Perl ííì) ì´ë¦ 모ë ê°ì§ê³ ììµëë¤. (Perlì JavaScriptê° ì ê· ííìì ë§ë¤ ë ì°¸ê³ í íë¡ê·¸ëë° ì¸ì´ì
ëë¤.) ì¬ì©íì§ ìë RegExp
ìì±ì ì°¸ê³ íì¸ì.
RegExp()
ìë¡ì´ RegExp
ê°ì²´ë¥¼ ìì±í©ëë¤.
get RegExp[@@species]
íì ê°ì²´ë¥¼ ìì±í ë ì¬ì©íë ìì±ìì ëë¤.
RegExp.lastIndex
ë¤ì íë³ì ììí ì¸ë±ì¤ì ëë¤.
RegExp.prototype.flags
RegExp
ê°ì²´ì íë그를 ë´ì 문ìì´ì
ëë¤.
RegExp.prototype.dotAll
.
ì´ ì¤ ë°ê¿ì ì¼ì¹íëì§ ì¬ë¶ë¥¼ ëíë
ëë¤.
RegExp.prototype.global
ì ê· ííìì´ ë¬¸ìì´ ë´ìì ê°ë¥í 모ë ê²½ì°ì ì¼ì¹íëì§, ìëë©´ ìµì´ì ëí´ìë§ ì¼ì¹íëì§ ëíë ëë¤.
RegExp.prototype.ignoreCase
문ìì´ì ëì문ì를 구ë¶íëì§ ëíë ëë¤.
RegExp.prototype.multiline
ì¬ë¬ ì¤ì ê±¸ì³ íìí ê²ì¸ì§ ëíë ëë¤.
RegExp.prototype.source
í¨í´ì ëíë´ë 문ìì´ì ëë¤.
RegExp.prototype.sticky
ê²ìì´ ì ì°©(sticky)ëì´ìëì§ ëíë ëë¤.
RegExp.prototype.unicode
Unicode 기ë¥ì íì±í ì¬ë¶ì ëë¤.
RegExp.prototype.compile()
ì¤í¬ë¦½í¸ ì¤í ì¤ ì ê· ííìì (ë¤ì) ì»´íì¼í©ëë¤.
RegExp.prototype.exec()
문ìì´ ë§¤ê°ë³ìì ëí´ ê²ìì ì¤íí©ëë¤.
RegExp.prototype.test()
문ìì´ ë§¤ê°ë³ìì ëí´ íë³ì ì¤íí©ëë¤.
RegExp.prototype.toString()
ê°ì²´ì 문ìì´ ííì ë°íí©ëë¤. Object.prototype.toString()
ë©ìë를 ì¬ì ìí©ëë¤.
RegExp.prototype[@@match]()
주ì´ì§ 문ìì´ì ëí´ ì¼ì¹íë 결과를 ë°íí©ëë¤.
RegExp.prototype[@@matchAll]()
주ì´ì§ 문ìì´ì ëí´ ì¼ì¹íë 모ë 결과를 ë°íí©ëë¤.
RegExp.prototype[@@replace]()
주ì´ì§ 문ìì´ ë´ì ì¼ì¹ë¥¼ ìë¡ì´ 문ìì´ë¡ ëì¹í©ëë¤.
RegExp.prototype[@@search]()
주ì´ì§ 문ìì´ì ëí´ ì¼ì¹íë ì¸ë±ì¤ë¥¼ ë°íí©ëë¤.
RegExp.prototype[@@split]()
주ì´ì§ 문ìì´ì ë¶í í´ ë°°ì´ë¡ ë°íí©ëë¤.
ë¤ì ì¤í¬ë¦½í¸ììë String
ê°ì²´ì replace()
ë©ìë를 ì¬ì©íì¬ ì´ë¦ ì±ì¨ ííì ì´ë¦ì ì±ì¨, ì´ë¦ íí ë°ê¿ ë°íí©ëë¤.
ëì¹ ë¬¸ìì´ìë $1
ê³¼ $2
를 ì¬ì©íì¬ ì ê· ííì í¨í´ì ê° ê´í¸ì ì¼ì¹í 결과를 ë°ììµëë¤.
let re = /(\w+)\s(\w+)/;
let str = "John Smith";
let newstr = str.replace(re, "$2, $1");
console.log(newstr);
ì¤í ê²°ê³¼ë "Smith, John"
ì
ëë¤.
기본 ì¤ ë°ê¿ 문ìë íë«í¼(Unix, Windows ë±)ë§ë¤ ë¤ë¦ ëë¤. ìëì ë¶í ì¤í¬ë¦½í¸ë 모ë íë«í¼ì ì¤ ë°ê¿ì ì¸ìí©ëë¤.
let text = "Some text\nAnd some more\r\nAnd yet\rThis is the end";
let lines = text.split(/\r\n|\r|\n/);
console.log(lines); // logs [ 'Some text', 'And some more', 'And yet', 'This is the end' ]
ì ê· ííì í¨í´ì ìì를 ë°ê¾¸ë©´ ìëíì§ ìì ì ììµëë¤.
ì¬ë¬ ì¤ìì ì ê· ííì ì¬ì©í기let s = "Please yes\nmake my day!";
s.match(/yes.*day/);
// Returns null
s.match(/yes[^]*day/);
// Returns ["yes\nmake my day"]
ì ì°© íëê·¸ì í¨ê» ì¬ì©í기
sticky
íëê·¸ë í´ë¹ ì ê· ííìì´ ì ì°© íë³, ì¦ RegExp.prototype.lastIndex
ìì ììíë ì¼ì¹ë§ íì¸íëë¡ í ì ììµëë¤.
let str = "#foo#";
let regex = /foo/y;
regex.lastIndex = 1;
regex.test(str); // true
regex.lastIndex = 5;
regex.test(str); // false (lastIndex is taken into account with sticky flag)
regex.lastIndex; // 0 (reset after match failure)
ì ì°©ê³¼ ì ì íëê·¸ì ì°¨ì´
ì ì°© íëê·¸ y
ì ì¼ì¹ë ì íí lastIndex
ìì¹ììë§ ë°ìí ì ìì¼ë, ì ì íëê·¸ g
ì ê²½ì° lastIndex
ëë ê·¸ ì´íììë ë°ìí ì ììµëë¤.
re = /\d/y;
while ((r = re.exec("123 456")))
console.log(r, "AND re.lastIndex", re.lastIndex);
// [ '1', index: 0, input: '123 456', groups: undefined ] AND re.lastIndex 1
// [ '2', index: 1, input: '123 456', groups: undefined ] AND re.lastIndex 2
// [ '3', index: 2, input: '123 456', groups: undefined ] AND re.lastIndex 3
// ... and no more match.
ì ì íëê·¸ g
를 ì¬ì©íë¤ë©´, 3ê°ê° ìëê³ 6ê° ì«ì 모ë ì¼ì¹íì ê²ì
ëë¤.
\w
ì \W
ë a
ë¶í° z
, A
ë¶í° Z
, 0
ë¶í° 9
_
ë±ì ASCII 문ììë§ ì¼ì¹í©ëë¤.
ë¬ììì´ë íë¸ë¦¬ì´ì ê°ì ë¤ë¥¸ ì¸ì´ì 문ìê¹ì§ ì¼ì¹íë ¤ë©´ \uhhhh
(ì´ë hhhhë í´ë¹ 문ìì 16ì§ë² Unicode ê°) 문ë²ì ì¬ì©íì¸ì. ìë ìì ììë 문ìì´ìì Unicode 문ì를 ì¶ì¶í©ëë¤.
let text = "ÐбÑÐ°Ð·ÐµÑ text на ÑÑÑÑком ÑзÑке";
let regex = /[\u0400-\u04FF]+/g;
let match = regex.exec(text);
console.log(match[0]); // logs 'ÐбÑазеÑ'
console.log(regex.lastIndex); // logs '7'
let match2 = regex.exec(text);
console.log(match2[0]); // logs 'на' [did not log 'text']
console.log(regex.lastIndex); // logs '15'
// and so on
ì ëì½ë ìì± ì´ì¤ì¼ì´í 기ë¥ì ì¬ì©í´ \p{scx=Cyrl}
ê³¼ ê°ì ê°ë¨í 구문ì¼ë¡ ì´ ë¬¸ì 를 í´ê²°í ì ììµëë¤.
let url = "http://xxx.domain.com";
console.log(/[^.]+/.exec(url)[0].substr(7)); // logs 'xxx'
ì°¸ê³ : ì´ ëë ì ê·ííìë³´ë¨ URL API를 íµí´ ë¸ë¼ì°ì ì ë´ì¥ë URL 구문 ë¶ì기를 ì¬ì©íë ê²ì´ ì¢ìµëë¤.
ëª ì¸ ë¸ë¼ì°ì í¸íì± ê°ì´ 보기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