譛ャ鬆√�逶ョ谺。 逶ョ谺。 谺。鬆�: 15-11_Error_Objects 蜑埼��: 15-9_Date_Objects
RegExp 繧ェ繝悶ず繧ァ繧ッ繝医�縲∵ュ」隕剰。ィ迴セ縺ィ髢「騾」縺吶k繝輔Λ繧ー縺ァ讒区�縺輔l繧九�
NOTE 豁」隕剰。ィ迴セ縺ョ譖ク蠑上→讖溯�縺ッ縲� Perl5 繝励Ο繧ー繝ゥ繝溘Φ繧ー險隱槭�豁」隕剰。ィ迴セ繧呈ィ。縺励※菴懊i繧後k縲�
RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ッ縲∝�蜉帙ヱ繧ソ繝シ繝ウ譁�ュ怜�縺ォ荳玖ィ倥�譁�ウ輔r驕ゥ逕ィ縺吶k縲よ枚豕輔′譁�ュ怜�繧� Pattern 縺ョ 螻暮幕縺ィ縺励※隗」驥医〒縺阪↑縺代l縺ー縲√お繝ゥ繝シ縺檎匱逕溘☆繧九�
豁」隕剰。ィ迴セ繝代ち繝シ繝ウ縺ッ縲∽ク九↓霑ー縺ケ繧句�逅�r逕ィ縺�k蜀�Κ髢「謨ー縺ォ螟画鋤縺輔l繧九ょョ溯」��縲∝酔縺倡オ先棡繧貞セ励i繧後k縺ェ繧峨�縲∽ク九↓霑ー縺ケ繧九b縺ョ繧医j繧ゅh繧雁柑邇��縺�>繧「繝ォ繧エ繝ェ繧コ繝�縺ョ莉墓ァ倥′謗ィ螂ィ縺輔l繧九�
莉・荳九�隱ャ譏弱〒縺ッ縲∵ャ。縺ョ螟画焚繧堤畑縺�k:
縺輔i縺ォ縲∽サ・荳九�隱ャ譏弱〒縺ッ縲∵ャ。縺ョ蜀�Κ繝��繧ソ讒矩�繧堤畑縺�k:
boolean
繧定ソ斐☆縲� assertion 繝�せ繧ソ繝シ縺ッ縲∝�蜉帶枚蟄怜�縺ョ迴セ蝨ィ縺ョ菴咲スョ縺ォ蟇セ縺吶k迚ケ谿頑擅莉カ (繧ッ繝ュ繝シ繧ク繝」縺ョ邨仙粋貂医∩蠑墓焚縺ァ迚ケ螳壹&繧後k) 繧偵ユ繧ケ繝医@縲∵擅莉カ縺ォ繝槭ャ繝√☆繧後� true 縲√�繝�メ縺励↑縺代l縺ー false 繧定ソ斐☆縲�逕滓�隕丞援 Pattern :: Disjunction 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
蜿り�ュ蝣ア隗」隱ャ (Informative comment): Pattern 縺ッ蜀�Κ髢「謨ー蛟、縺ォ隧穂セ。 ("繧ウ繝ウ繝代う繝ォ") 縺輔l繧九� RegExp.prototype.exec 縺後%縺ョ髢「謨ー繧帝←逕ィ縺ァ縺阪k縺ョ縺ッ縲∵枚蟄怜�縺ィ縲∵枚蟄怜�蜀�Κ縺ョ繧ェ繝輔そ繝�ヨ縺ァ縲√◎繧後�譁�ュ怜�蜀�Κ縺ョ縺昴�蜴ウ蟇�↑繧ェ繝輔そ繝�ヨ縺ァ髢句ァ九@縺ヲ繝代ち繝シ繝ウ縺後�繝�メ縺ァ縺阪k縺九←縺�°繧呈アコ螳壹☆繧九b縺ョ縺ァ縺ゅk縲� 縺昴@縺ヲ縲√�繝�メ縺吶k縺ェ繧峨�縲√◎繧後�謐墓拷諡ャ蠑ァ縺ョ蛟、縺ィ縺ェ繧九b縺ョ縺ァ縺ゅk縲� 繧サ繧ッ繧キ繝ァ繝ウ 15.10.2 縺ョ繧「繝ォ繧エ繝ェ繧コ繝�縺ッ縲√さ繝ウ繝代う繝ォ縺吶k繝代ち繝シ繝ウ縺御セ句、� SyntaxError 繧呈兜縺偵※繧ゅh縺�h縺�↓險ュ險医&繧後k; 荳譁ケ縲√ヱ繧ソ繝シ繝ウ縺御ク譌ヲ繧ウ繝ウ繝代う繝ォ縺輔l繧九→縲∵枚蟄怜�蜀��繝槭ャ繝√r讀懃エ「縺吶k邨先棡縺ョ髢「謨ー縺ョ驕ゥ逕ィ縺ッ縲∽セ句、悶r謚輔£繧九%縺ィ縺悟�譚・縺ェ縺� (out-of-memory 縺ェ縺ゥ縲√←縺薙〒繧ら匱逕溘@縺�k莉サ諢上�繝帙せ繝亥ョ夂セゥ縺ョ萓句、悶r髯、縺�)縲�
逕滓�隕丞援 Disjunction :: Alternative 縺ョ隧穂セ。縺ッ縲� Alternative 繧定ゥ穂セ。縺励※蜿門セ励@縺� Matcher 繧定ソ斐☆縲�
逕滓�隕丞援 Disjunction :: Alternative | Disjunction 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
蜿り�ュ蝣ア隗」隱ャ: 豁」隕剰。ィ迴セ貍皮ョ怜ュ� | 縺ッ 2 蛟九�莉」譖ソ繧貞玄蛻�k縲ゅヱ繧ソ繝シ繝ウ縺ッ縺セ縺壼キヲ縺ョ Alternative (蠕後↓豁」隕剰。ィ迴セ縺檎カ壹¥) 縺ョ繝槭ャ繝√r隧ヲ陦後☆繧�; 螟ア謨励@縺溘↑繧峨�縲∝承縺ョ Disjunction (蠕後↓豁」隕剰。ィ迴セ縺檎カ壹¥) 縺ョ繝槭ャ繝√r隧ヲ陦後☆繧九ょキヲ縺ョ Alternative, 蜿ウ縺ョ Disjunction, 邯壹″蜈ィ縺ヲ縺碁∈謚樒せ繧呈戟縺、縺ェ繧峨�縲∫カ壹″縺ョ蜈ィ縺ヲ縺ョ驕ク謚櫁い縺ッ蟾ヲ縺ョ Alternative 蜀��谺。縺ョ驕ク謚櫁い荳翫∈縺ョ遘サ蜍募燕縺ォ隧ヲ陦後&繧後k縲ょキヲ縺ョ Alternative 蜀��驕ク謚櫁い繧剃スソ縺��縺」縺溘↑繧峨�縲∝承縺ョ Disjunction 縺悟キヲ縺ョ Alternative 縺ョ莉」繧上j縺ォ隧ヲ陦後&繧後k縲� | 縺ォ繧医j繧ケ繧ュ繝��縺輔l縺溘ヱ繧ソ繝シ繝ウ謌仙�蜀�Κ縺ョ莉サ諢上�謐墓拷諡ャ蠑ァ縺ッ縲∵枚蟄怜�縺ョ莉」繧上j縺ォ undefined 蛟、繧堤函謌舌☆繧九ゅ▽縺セ繧翫∽セ九∴縺ー
/a|ab/.exec("abc")
縺ッ邨先棡 "a" 繧定ソ斐@縲� "ab" 縺ッ霑斐&縺ェ縺�ゅb縺」縺ィ險縺医�
/((a)|(ab))((c)|(bc))/.exec("abc")
縺ッ莉・荳九�驟榊�
["abc", "a", "a", undefined, "bc", undefined, "bc"]
繧定ソ斐@縲�
["abc", "ab", undefined, "ab", "c", "c", undefined]
縺ッ霑斐&縺ェ縺��
逕滓�隕丞援 Alternative :: [empty] 縺ョ隧穂セ。縺ッ縲`atcher 繧定ソ斐☆縲ゅ%縺ョ Matcher 縺ッ 2 蛟九�蠑墓焚 State x 縺ィ Continuation c 繧偵→繧翫� c(x) 縺ョ邨先棡繧定ソ斐☆縲�
逕滓�隕丞援 Alternative :: Alternative Term 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
蜿り�ュ蝣ア隗」隱ャ: 騾」邯壹☆繧� Term 縺ッ縲∝�蜉帶枚蟄怜�縺ョ騾」邯壹☆繧矩Κ蛻��蜷梧凾繝槭ャ繝√r隧ヲ縺ソ繧九� 蟾ヲ縺ョ Alternative, 蜿ウ縺ョ Term, 邯壹″縺ョ豁」隕剰。ィ迴セ縺ョ蜈ィ縺ヲ縺碁∈謚槭�繧、繝ウ繝医r謖√▽縺ェ繧峨�縲� 邨先棡縺ョ蜈ィ驕ク謚櫁い縺悟承縺ョ Term 縺ョ谺。縺ョ驕ク謚櫁い縺ォ遘サ蜍輔☆繧句燕縺ォ讀懈渊縺輔l縲� 蜿ウ縺ョ Term 縺ョ蜈ィ縺ヲ縺ョ驕ク謚櫁い縺悟キヲ縺ョ Alternative 縺ョ谺。縺ョ驕ク謚櫁い縺ォ遘サ蜍輔☆繧句燕縺ォ讀懈渊縺輔l繧九�
逕滓�隕丞援 Term :: Assertion 縺ョ隧穂セ。縺ッ 2 蛟九�蠑墓焚 State x 縺ィ a Continuation c 繧貞叙繧句�驛ィ Matcher 繧ッ繝ュ繝シ繧ク繝」 繧定ソ斐☆縲ゅ%縺ョ繧ッ繝ュ繝シ繧ク繝」縺ッ谺。繧貞ョ溯。後☆繧�:
boolean
蛟、繧� r 縺ィ縺吶k縲�逕滓�隕丞援 Term :: Atom 縺ョ隧穂セ。縺ッ縲� Atom 繧定ゥ穂セ。縺励※ Matcher 繧貞叙蠕励@縲√◎縺ョ Matcher 繧定ソ斐☆縲�
逕滓�隕丞援 Term :: Atom Quantifier 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
boolean
蛟、 greedy 繧貞叙蠕励☆繧九�蜀�Κ陬懷勧髢「謨ー RepeatMatcher 縺ッ 8 蛟九�繝代Λ繝。繧ソ: Matcher m, 謨エ謨ー min, 謨エ謨ー (or ∞) max, boolean
蛟、 greedy, State x, Continuation c, 謨エ謨ー parenIndex, 謨エ謨ー parenCount, 繧貞叙繧九ゅ◎縺励※谺。縺ョ繧医≧縺ォ謖ッ闊槭≧:
蜿り�ュ蝣ア隗」隱ャ: Quantifier 縺ョ邯壹¥ Atom 縺ッ縲� Quantifier 縺ァ謖�ョ壹&繧後◆蝗樊焚縺�縺醍ケー繧願ソ斐&繧後k縲る㍼謖�ョ壼ュ舌�雋ェ谺イ縺ァ縺ェ縺上☆繧九%縺ィ繧ゅ〒縺阪k縲ゅ◎縺ョ蝣エ蜷医∵峩縺ェ繧句セ檎カ壹�繝槭ャ繝√r陦後≧縺�∴縺ァ Atom 繝代ち繝シ繝ウ縺ョ郢ー霑斐@蝗樊焚縺ッ蜿ッ閭ス縺ェ髯舌j蟆代↑縺�ゅ∪縺溯イェ谺イ縺ォ縺吶k縺薙→繧ゅ〒縺阪k縲ゅ◎縺ョ蝣エ蜷医� Atom 繝代ち繝シ繝ウ縺ッ蠕檎カ壹�繝槭ャ繝√↓蜿ッ閭ス縺ェ髯舌j螟壹¥縺ョ蝗樊焚郢ー繧願ソ斐&繧後k縲ゅ�繝�メ繧定。後≧蜈・蜉帶枚蟄怜�繧医j繧ゅ�縺励m Atom 繝代ち繝シ繝ウ縺檎ケー繧願ソ斐&繧後√@縺溘′縺」縺ヲ Atom 縺ョ逡ー縺ェ繧句渚蠕ゥ縺ッ縲∫焚縺ェ繧句�蜉幃Κ蛻�枚蟄怜�縺ィ繝槭ャ繝√〒縺阪k縲�
Atom 縺ィ邯壹″縺ョ豁」隕剰。ィ迴セ縺後☆縺ケ縺ヲ驕ク謚樒せ繧呈戟縺、蝣エ蜷医� Atom 縺ッ縺セ縺壼庄閭ス縺ェ髯舌j螟壹¥(譛遏ュ繝槭ャ繝√〒縺ッ蟆代↑縺�) 縺ョ繝槭ャ繝√r陦後≧縲らカ壹″縺ョ蜈ィ驕ク謚櫁い縺ッ縲∵怙蠕後� Atom 蜿榊セゥ荳ュ縺ァ縺ョ谺。縺ョ驕ク謚櫁い荳翫↓遘サ蜍輔☆繧句燕縺ォ縲∬ゥヲ陦後&繧後k縲よ怙蠕� (n 逡ェ逶ョ) 縺ョ Atom 蜿榊セゥ縺ョ蜈ィ驕ク謚櫁い縺ッ縲∵怙蠕後°繧我ク縺、蜑� (n-1 逡ェ逶ョ) 縺ョ Atom 蜿榊セゥ荳ュ縺ァ縺ョ谺。縺ョ驕ク謚櫁い荳翫↓遘サ蜍輔☆繧句燕縺ォ縲∬ゥヲ陦後&繧後k; 縺昴�譎らせ縺ァ縲√h繧雁、壹¥縺ョ縲√∪縺溘�繧医j蟆代↑縺� Atom 縺ョ蜿榊セゥ縺御サ雁コヲ縺ッ蜿ッ閭ス縺ァ縺ゅk縺薙→縺悟愛譏弱☆繧九°繧ゅ@繧後↑縺�; (n-1) 逡ェ逶ョ縺ョ Atom 縺ョ蜿榊セゥ縺ョ荳ュ縺ョ谺。縺ョ驕ク謚櫁い荳翫↓遘サ蜍輔☆繧句燕縺ォ縲�(蜿ッ閭ス縺ェ髯舌j蟆代↑縺上√∪縺溘�蜿ッ閭ス縺ェ髯舌j螟壹¥縺ョ縺�★繧後°縺ァ蜀埼幕縺�)縲∽スソ縺�ース縺上&繧後k縲�
/a[a-z]{2,4}/.exec("abcdefghi")
縺� "abcde" 繧定ソ斐☆縺薙→縺ォ霈�∋縺ヲ縲�
/a[a-z]{2,4}?/.exec("abcdefghi")
縺ッ "abc" 繧定ソ斐☆縲�
縺セ縺溘�
/(aa|aabaac|ba|b|c)*/.exec("aabaac")
荳翫�鬆��驕ク謚樒せ縺ォ繧医k豁」隕剰。ィ迴セ縺ッ
["aaba", "ba"]
縺ィ縺�≧驟榊�繧定ソ斐@縲�
["aabaac", "aabaac"] ["aabaac", "c"]
縺ィ縺ッ縺ェ繧峨↑縺��
荳願ィ倥�驕ク謚樒せ縺ョ鬆�コ上�縲�2 謨ー縺ョ譛螟ァ蜈ャ邏�焚(蜊倬��。ィ險倥〒陦ィ縺�)繧堤ョ怜�縺吶k豁」隕剰。ィ迴セ縺ョ險倩ソー縺ォ繧ゆスソ逕ィ縺ァ縺阪k縲よャ。縺ョ萓九�縲�10 縺ィ 15 縺ョ譛螟ァ蜈ャ邏�焚繧堤ョ怜�縺吶k:
"aaaaaaaaaa,aaaaaaaaaaaaaaa".replace(/^(a+)\1*,\1+$/,"$1")
縺薙l縺ッ蜊倬��。ィ險倥�譛螟ァ蜈ャ邏�焚 "aaaaa" 繧定ソ斐☆縲�
繧ケ繝�ャ繝� 4 縺ョ RepeatMatcher 縺ッ縲� Atom 縺檎ケー繧願ソ斐&繧後k縺溘�縺ォ Atom 縺ョ captures 繧偵け繝ェ繧「縺吶k縲� 縺薙l縺ッ谺。縺ョ豁」隕剰。ィ迴セ縺ョ謖ッ繧玖�縺�↓隕九k縺薙→縺後〒縺阪k:
/(z)((a+)?(b+)?(c))*/.exec("zaacbbbcac")
縺薙l縺ッ谺。縺ョ驟榊�繧定ソ斐@:
["zaacbbbcac", "z", "ac", "a", undefined, "c"]
谺。縺ョ繧医≧縺ェ繧ゅ�縺ァ縺ッ縺ェ縺��
["zaacbbbcac", "z", "ac", "a", "bbb", "c"]
譛繧ょ、門�縺ョ * 縺ョ蜷�渚蠕ゥ縺後√%縺ョ蝣エ蜷� 2 逡ェ逶ョ, 3 逡ェ逶ョ, 4 逡ェ逶ョ縺ァ縺ゅk謐墓拷譁�ュ怜�繧貞性繧縲∵焚驥丞喧縺輔l縺� Atom 縺ォ蜷ォ縺セ繧後※縺�◆蜈ィ縺ヲ縺ョ謐墓拷縺輔l縺滓枚蟄怜�繧偵け繝ェ繧「縺吶k縺溘a縺ァ縺ゅk縲�
繧ケ繝�ャ繝� 1 縺ョ RepeatMatcher 縺ョ繧ッ繝ュ繝シ繧ク繝」 d 縺ッ縲∽ク譌ヲ譛蟆丞渚蠕ゥ謨ー縺梧コ縺溘&繧後◆繧峨◎繧御サ・荳顔ゥコ譁�ュ怜�縺ォ繝槭ャ繝√☆繧� Atom 縺ョ螻暮幕繧呈峩縺ォ蜿榊セゥ縺吶k縺溘a縺ォ閠�∴縺ェ縺�%縺ィ繧貞ョ」險縺吶k縲ゅ%繧後�豁」隕剰。ィ迴セ繧ィ繝ウ繧ク繝ウ縺後ヱ繧ソ繝シ繝ウ縺ョ辟。髯舌Ν繝シ繝励↓髯・繧九%縺ィ繧帝亟縺�〒縺翫j縲∵ャ。縺ョ繧医≧縺ェ豁」隕剰。ィ迴セ縺ッ:
/(a*)*/.exec("b")
縺セ縺溯凶蟷イ隍�尅縺ォ縺ッ谺。縺ョ繧医≧縺ェ繧ゅ�縺ッ:
/(a*)b\1+/.exec("baaaac")
縺薙l繧峨�谺。縺ョ驟榊�繧定ソ斐☆:
["b", ""]
逕滓�隕丞援 Assertion :: ^ 縺ョ隧穂セ。縺ッ縲∝�驛ィ AssertionTester 繧ッ繝ュ繝シ繧ク繝」繧定ソ斐☆縲ゅ%繧後�蠑墓焚縺ォ State x 繧貞叙繧翫∵ャ。繧貞ョ溯。後☆繧�:
逕滓�隕丞援 Assertion :: $ 縺ョ隧穂セ。縺ッ縲∝�驛ィ AssertionTester 繧ッ繝ュ繝シ繧ク繝」繧定ソ斐☆縲ゅ%繧後�蠑墓焚縺ォ State x 繧貞叙繧翫∵ャ。繧貞ョ溯。後☆繧�:
逕滓�隕丞援 Assertion :: \ b 縺ョ隧穂セ。縺ッ縲∝�驛ィ AssertionTester 繧ッ繝ュ繝シ繧ク繝」繧定ソ斐☆縲ゅ%繧後�蠑墓焚縺ォ State x 繧貞叙繧翫∵ャ。繧貞ョ溯。後☆繧�:
boolean
蛟、繧� a 縺ィ縺吶k縲�boolean
蛟、繧� b 縺ィ縺吶k縲�逕滓�隕丞援 Assertion :: \ B 縺ョ隧穂セ。縺ッ縲∝�驛ィ AssertionTester 繧ッ繝ュ繝シ繧ク繝」繧定ソ斐☆縲ゅ%繧後�蠑墓焚縺ォ State x 繧貞叙繧翫∵ャ。繧貞ョ溯。後☆繧�:
boolean
蛟、繧� a 縺ィ縺吶k縲�boolean
蛟、繧� b 縺ィ縺吶k縲�蜀�Κ陬懷勧髢「謨ー IsWordChar 縺ッ謨エ謨ー繝代Λ繝。繝シ繧ソ e 繧偵→繧翫∵ャ。繧貞ョ溯。後☆繧�:
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 _
逕滓�隕丞援 Quantifier :: QuantifierPrefix 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 Quantifier :: QuantifierPrefix ? 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 QuantifierPrefix :: * 縺ョ隧穂セ。縺ッ縲� 2 蛟九�邨先棡 0 縺ィ ∞ 繧定ソ斐☆縲�
逕滓�隕丞援 QuantifierPrefix :: + 縺ョ隧穂セ。縺ッ縲� 2 蛟九�邨先棡 1 縺ィ ∞ 繧定ソ斐☆縲�
逕滓�隕丞援 QuantifierPrefix :: ? 縺ョ隧穂セ。縺ッ縲� 2 蛟九�邨先棡 0 縺ィ 1 繧定ソ斐☆縲�
逕滓�隕丞援 QuantifierPrefix :: { DecimalDigits } 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 QuantifierPrefix :: { DecimalDigits , } 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 QuantifierPrefix :: { DecimalDigits , DecimalDigits } 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 Atom :: PatternCharacter 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 Atom :: . 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 Atom :: \ AtomEscape 縺ョ隧穂セ。縺ッ縲� AtomEscape 繧定ゥ穂セ。縺励※ Matcher 繧貞叙蠕励@縲√◎縺ョ Matcher 繧定ソ斐☆縲�
逕滓�隕丞援 Atom :: CharacterClass 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
boolean
蛟、 invert 繧貞叙蠕励☆繧九�逕滓�隕丞援 Atom :: ( Disjunction ) 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 Atom :: ( ? : Disjunction ) 縺ョ隧穂セ。縺ッ縲� Disjunction 繧定ゥ穂セ。縺励※ Matcher 繧貞叙蠕励@縲√◎縺ョ Matcher 繧定ソ斐☆縲�
逕滓�隕丞援 Atom :: ( ? = Disjunction ) 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 Atom :: ( ? ! Disjunction ) 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
蜀�Κ陬懷勧髢「謨ー CharacterSetMatcher 縺ッ 2 蛟九�蠑墓焚 CharSet A 縺ィ boolean
繝輔Λ繧ー invert 繧偵→繧翫∵ャ。縺ョ繧医≧縺ォ謖ッ闊槭≧:
蜀�Κ陬懷勧髢「謨ー Canonicalize 縺ッ繝代Λ繝。繧ソ縺ォ譁�ュ� ch 繧偵→繧翫∵ャ。縺ョ繧医≧縺ォ謖ッ闊槭≧:
蜿り�ュ蝣ア隗」隱ャ: ( Disjunction ) 蠖「蠑上�諡ャ蠑ァ縺ッ縲� Disjunction 繝代ち繝シ繝ウ縺ョ繧ー繝ォ繝シ繝玲�蛻�→縺ィ繧ゅ↓縲√�繝�メ邨先棡縺ョ菫晏ュ倥r謠千、コ縺吶k縲らオ先棡縺ッ蠕梧婿蜿ら� (\ 縺ォ 0 莉・螟悶�10騾イ謨ー縺檎カ壹¥繧ゅ�)縲∫スョ謠帶枚蟄怜�蜀�〒縺ョ蜿ら�縺ォ逕ィ縺�i繧後√∪縺滓ュ」隕剰。ィ迴セ繝槭ャ繝�未謨ー縺九i驟榊�縺ョ荳驛ィ繧定ソ斐&繧後k縲よ峡蠑ァ縺ョ謐墓拷縺ョ謖ッ繧玖�縺��謚大宛縺ォ縺ッ縲∽サ」繧上j縺ォ (?: Disjunction ) 蠖「蠑上r逕ィ縺�k縲�
(?= Disjunction ) 蠖「蠑上�縲� 0 譁�ュ怜ケ��閧ッ螳壹�蜈郁ェュ縺ソ繧呈欠螳壹☆繧九よ�蜉溘☆繧九◆繧√↓縺ッ Disjunction 蜀�Κ縺ョ繝代ち繝シ繝ウ縺ッ迴セ蝨ィ菴咲スョ縺ォ縺翫>縺ヲ繝槭ャ繝√@縺ェ縺代l縺ー縺ェ繧峨↑縺�′縲∝セ檎カ壹�繝槭ャ繝√Φ繧ー縺ョ蜑阪↓迴セ蝨ィ菴咲スョ縺ッ蜑埼イ縺励↑縺�� Disjunction 縺檎樟蝨ィ菴咲スョ縺ォ縺翫¢繧九�繝�メ縺ォ菴暮壹j縺九≠繧句�エ蜷医�縲∵怙蛻昴�繧ゅ�縺�縺代′讀懈渊縺輔l繧九ゆサ悶�豁」隕剰。ィ迴セ貍皮ョ怜ュ舌→縺ッ逡ー縺ェ繧翫� (?= 蠖「蠑丞�縺ク縺ョ蠕梧婿蜿ら�縺ッ蟄伜惠縺励↑縺� (縺薙�迢ャ迚ケ縺ョ謖ッ繧玖�縺�� Perl 縺九i邯呎価縺輔l繧�)縲� Disjunction 縺梧黒謐画峡蠑ァ縺ィ縺昴�謐墓拷縺ク縺ョ蠕梧婿蜿ら�繧貞性繧蠕檎カ壹�繝代ち繝シ繝ウ縺ァ讒区�縺輔l繧九→縺阪√%縺ョ縺薙→縺碁㍾隕√↓縺ェ繧九�
萓九∴縺ー縲�
/(?=(a+))/.exec("baaabac")
縺ッ縲� 1 蛟狗岼縺ョ b 縺ョ逶エ蠕後�遨コ譁�ュ怜�縺ォ繝槭ャ繝√@縲√◎繧後f縺域ャ。縺ョ驟榊�繧定ソ斐☆:
["", "aaa"]
蜈郁ェュ縺ソ縺ク蠕梧婿蜿ら�縺ョ荳崎カウ縺ョ萓九→縺励※縲∵ャ。繧定�∴縺ヲ縺ソ繧�:
/(?=(a+))a*b\1/.exec("baaabac")
縺薙�蠑上′霑斐☆縺ョ縺ッ谺。縺ァ縺ゅj:
["aba", "a"]
谺。縺ョ繧医≧縺ォ縺ッ縺ェ繧峨↑縺�:
["aaaba", "a"]
(?= Disjunction ) 蠖「蠑上�縲� 0 譁�ュ怜ケ��蜷ヲ螳壹�蜈郁ェュ縺ソ繧呈欠螳壹☆繧九よ�蜉溘☆繧九◆繧√↓縺ッ Disjunction 蜀�Κ縺ョ繝代ち繝シ繝ウ縺ッ迴セ蝨ィ菴咲スョ縺ォ縺翫>縺ヲ繝槭ャ繝√↓螟ア謨励@縺ェ縺代l縺ー縺ェ繧峨↑縺�ら樟蝨ィ菴咲スョ縺ッ蠕檎カ壹�繝槭ャ繝√Φ繧ー縺ョ蜑阪↓蜑埼イ縺励↑縺�� Disjunction 縺ォ縺ッ謐墓拷諡ャ蠑ァ繧貞性繧√i繧後k縺後√◎繧後i縺ク縺ョ蠕梧婿蜿ら�縺ッ Disjunction 閾ェ霄ォ蜀�Κ縺九i縺ョ蝣エ蜷医b縺ョ縺ソ諢丞袖繧呈戟縺、縲ゅヱ繧ソ繝シ繝ウ蜀��莉悶�蝣エ謇縺九i縺ョ縺薙l繧峨�謐墓拷諡ャ蠑ァ縺ク縺ョ蠕梧婿蜿ら�縺ッ縲√ヱ繧ソ繝シ繝ウ縺ォ蜷ヲ螳壹�蜈郁ェュ縺ソ縺梧�蜉溘@縺ヲ縺ッ縺ェ繧峨↑縺�◆繧√∝クク縺ォ undefined 繧定ソ斐☆縲ゆセ九∴縺ー:
/(.*?)a(?!(a+)b\2c)\2(.*)/.exec("baaabaac")
縺ッ縲√≠繧区ュ」縺ョ謨ー n 蛟九� a
, 1 蛟九� b
, 莉悶� n 蛟九� (1 蛟狗岼縺ョ \2
縺ァ謖�ョ壹&繧後k) a
, 1 蛟九� c
, 縺檎峩蠕後↓邯壹°縺ェ縺�h縺�↑ 1 蛟九� a
繧呈、懃エ「縺吶k縲� 2 蛟狗岼縺ョ \2
縺ッ蜷ヲ螳壹�蜈郁ェュ縺ソ縺ョ螟夜Κ縺ァ縺ゅj縲√@縺溘′縺」縺ヲ undefined 縺ォ蟇セ縺励※繝槭ャ繝√☆繧九�縺ァ蟶ク縺ォ謌仙粥縺吶k縲ょシ丞�菴薙�谺。縺ョ驟榊�繧定ソ斐☆:
["baaabaac", "ba", undefined, "abaac"]
譁�ュ励こ繝シ繧ケ繧貞玄蛻・縺励↑縺��繝�メ縺ァ縺ッ縲∝�縺ヲ縺ョ譁�ュ励�豈碑シ��逶エ蜑阪↓證鈴サ吶↓螟ァ譁�ュ励↓螟画鋤縺輔l繧九ゅ@縺九@縲∝、ァ譁�ュ励∈縺ョ螟画鋤縺� 1 蛟倶サ・荳翫�譁�ュ励↓螻暮幕縺輔l繧句�エ蜷�("ß" (\u00DF
) 縺九i "SS
" 縺ォ螟画鋤縺ェ縺ゥ)縺ッ縲∽サ」繧上j縺ォ譁�ュ励�縺昴�縺セ縺セ谿九&繧後k縲� ASCII 譁�ュ励〒縺ェ縺上※繧ゅ∝、ァ譁�ュ励∈縺ョ螟画鋤縺後◎縺ョ譁�ュ励r ASCII 譁�ュ励↓縺吶k蝣エ蜷医√◎縺ョ譁�ュ励�谿九&繧後k縲ゅ%繧後� /[a-z]/i 縺ョ繧医≧縺ェ ASCII 譁�ュ励�繝槭ャ繝√�縺ソ繧呈э蝗ウ縺励◆豁」隕剰。ィ迴セ縺ョ繝槭ャ繝√°繧峨―u0131 \u017F 縺ョ繧医≧縺ェ Unicode 譁�ュ励r驕ョ繧九ゅ↑縺翫√%繧後i縺ョ螟画鋤縺瑚ィア蜿ッ縺輔l繧句�エ蜷医� /[^\W]/i 縺ッ a, b, ..., h, 縺ォ縺ッ繝槭ャ繝√☆繧九′ i 繧� s 縺ォ縺ッ繝槭ャ繝√@縺ェ縺��
逕滓�隕丞援 AtomEscape :: DecimalEscape 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 AtomEscape :: CharacterEscape 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 AtomEscape :: CharacterClassEscape 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
蜿り�ュ蝣ア隗」隱ャ: \ 縺ォ 0 莉・螟悶�10騾イ謨ー n 縺ョ邯壹¥蠖「蠑上�繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ縺ッ縲∵黒謐画峡蠑ァ縺ョ n 逡ェ逶ョ縺ョ髮�粋 (繧サ繧ッ繧キ繝ァ繝ウ 15.10.2.11) 縺ョ邨先棡縺ォ繝槭ャ繝√☆繧九よュ」隕剰。ィ迴セ荳ュ縺ョ謐墓拷諡ャ蠑ァ縺� n 蛟区悴貅縺ァ縺ゅk蝣エ蜷医�繧ィ繝ゥ繝シ縺ァ縺ゅk縲よュ」隕剰。ィ迴セ縺� n 蛟倶サ・荳翫�謐墓拷諡ャ蠑ァ繧呈戟縺、縺� n 逡ェ逶ョ縺御ス輔b謐墓拷縺輔l縺� undefined 縺ァ縺ゅk蝣エ蜷医√◎縺ョ蠕梧婿蜿ら�縺ッ蟶ク縺ォ謌仙粥縺吶k縲�
逕滓�隕丞援 CharacterEscape :: ControlEscape 縺ョ隧穂セ。縺ッ縲∽ク九�陦ィ縺ォ蠕薙▲縺ヲ譁�ュ励r霑斐☆:
ControlEscape | Unicode Value | Name | Symbol |
t | \u0009 | horizontal tab | <HT> |
n | \u000A | line feed (new line) | <LF> |
v | \u000B | vertical tab | <VT> |
f | \u000C | form feed | <FF> |
r | \u000D | carriage return |
<CR> |
逕滓�隕丞援 CharacterEscape :: c ControlLetter 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 CharacterEscape :: HexEscapeSequence 縺ョ隧穂セ。縺ッ縲� HexEscapeSequence 縺ョ譁�ュ怜、 (繧サ繧ッ繧キ繝ァ繝ウ 7.8.4) 繧定ゥ穂セ。縺励※縲∫オ先棡縺ョ譁�ュ励r霑斐☆縲�
逕滓�隕丞援 CharacterEscape :: UnicodeEscapeSequence 縺ョ隧穂セ。縺ッ縲� UnicodeEscapeSequence 縺ョ譁�ュ怜、 (繧サ繧ッ繧キ繝ァ繝ウ 7.8.4) 繧定ゥ穂セ。縺励※縲∫オ先棡縺ョ譁�ュ励r霑斐☆縲�
逕滓�隕丞援 CharacterEscape :: IdentityEscape 縺ョ隧穂セ。縺ッ縲� IdentityEscape 縺ァ陦ィ縺輔l繧区枚蟄励r霑斐☆縲�
逕滓�隕丞援 DecimalEscape :: DecimalIntegerLiteral [lookahead ∉ DecimalDigit] 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧九�
"DecimalIntegerLiteral 縺ョ謨ー蟄ヲ蛟、" 縺ョ螳夂セゥ縺ッ繧サ繧ッ繧キ繝ァ繝ウ 7.8.3 縺ァ縺ゅk縲�
蜿り�ュ蝣ア隗」隱ャ: 譛蛻昴�謨ー蟄励′0莉・螟悶〒縺ゅk10騾イ謨ー n 縺� \ 縺ォ邯壹¥蝣エ蜷医√◎縺ョ繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ縺ッ蠕梧婿蜿ら�縺ィ縺励※閠�∴繧九よュ」隕剰。ィ迴セ蜈ィ菴薙�蟾ヲ謐墓拷諡ャ蠑ァ縺ョ邱乗焚繧医j繧� n 縺悟、ァ縺阪>蝣エ蜷医�繧ィ繝ゥ繝シ縺ァ縺ゅk縲� \0 縺ッ NUL 譁�ュ励r陦ィ縺励�10騾イ謨ー蟄励r蠕後↓邯壹¢繧九%縺ィ縺ッ縺ァ縺阪↑縺��
逕滓�隕丞援 CharacterClassEscape :: d 縺ョ隧穂セ。縺ッ縲�0 縺九i 9 縺セ縺ァ繧貞性繧譁�ュ励� 10 蛟九�隕∫エ�髮�粋繧定ソ斐☆縲�
逕滓�隕丞援 CharacterClassEscape :: D 縺ョ隧穂セ。縺ッ縲� CharacterClassEscape :: d 縺瑚ソ斐☆髮�粋繧帝勁縺丞�縺ヲ縺ョ譁�ュ励�髮�粋繧定ソ斐☆縲�
逕滓�隕丞援 CharacterClassEscape :: s 縺ョ隧穂セ。縺ッ縲� WhiteSpace (繧サ繧ッ繧キ繝ァ繝ウ 7.2) 縺セ縺溘� LineTerminator (繧サ繧ッ繧キ繝ァ繝ウ 7.3) 逕滓�隕丞援縺ョ蜿ウ霎コ荳翫�譁�ュ励r蜷ォ繧譁�ュ鈴寔蜷医r霑斐☆縲�
逕滓�隕丞援 CharacterClassEscape :: S 縺ョ隧穂セ。縺ッ縲� CharacterClassEscape :: s 縺瑚ソ斐☆髮�粋繧帝勁縺丞�縺ヲ縺ョ譁�ュ鈴寔蜷医r霑斐☆縲�
逕滓�隕丞援 CharacterClassEscape :: w 縺ョ隧穂セ。縺ッ縲� 63 蛟九�譁�ュ励r蜷ォ繧譁�ュ励�髮�粋繧定ソ斐☆:
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _
逕滓�隕丞援 CharacterClassEscape :: W 縺ョ隧穂セ。縺ッ縲� CharacterClassEscape :: w 縺瑚ソ斐☆髮�粋繧帝勁縺丞�縺ヲ縺ョ譁�ュ鈴寔蜷医r霑斐☆縲�
逕滓�隕丞援 CharacterClass :: [ [lookahead ∉ {^}] ClassRanges ] 縺ョ隧穂セ。縺ッ縲� ClassRanges 繧定ゥ穂セ。縺励※ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 縺ィ繝悶�繝ェ繧「繝ウ蛟、 false 繧定ソ斐☆縲�
逕滓�隕丞援 CharacterClass :: [ ^ ClassRanges ] 縺ョ隧穂セ。縺ッ縲� ClassRanges 繧定ゥ穂セ。縺励※ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 縺ィ繝悶�繝ェ繧「繝ウ蛟、 true 繧定ソ斐☆縲�
逕滓�隕丞援 ClassRanges :: [empty] 縺ョ隧穂セ。縺ッ縲∫ゥコ縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 ClassRanges :: NonemptyClassRanges 縺ョ隧穂セ。縺ッ縲� NonemptyClassRanges 繧定ゥ穂セ。縺励※ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 NonemptyClassRanges :: ClassAtom 縺ョ隧穂セ。縺ッ縲� ClassAtom 繧定ゥ穂セ。縺励※ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 NonemptyClassRanges :: ClassAtom NonemptyClassRangesNoDash 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 NonemptyClassRanges :: ClassAtom - ClassAtom ClassRanges 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
蜀�Κ陬懷勧髢「謨ー CharacterRange 縺ッ縲� 2 蛟九� CharSet 繝代Λ繝。繝シ繧ソ A 縺ィ B 繧偵→繧翫∵ャ。繧貞ョ溯。後☆繧�:
逕滓�隕丞援 NonemptyClassRangesNoDash :: ClassAtom 隧穂セ。縺ッ縲� ClassAtom 隧穂セ。縺ァ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 NonemptyClassRangesNoDash :: ClassAtomNoDash NonemptyClassRangesNoDash 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�::
逕滓�隕丞援 NonemptyClassRangesNoDash :: ClassAtomNoDash - ClassAtom ClassRanges 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�::
蜿り�ュ蝣ア隗」隱ャ: ClassRanges 縺ッ縲∝腰荳縺ョ ClassAtom 縺昴@縺ヲ/縺セ縺溘� 繝繝�す繝・縺ァ蛹コ蛻�i繧後◆ 2 蛟九� ClassAtom 縺ョ遽�峇縺ォ螻暮幕縺励※繧医>縲よ枚蟄励こ繝シ繧ケ縺ォ縺、縺�※縺ッ縲� ClassRanges 縺ッ 1 縺、逶ョ縺ョ ClassAtom 縺ィ 2 縺、逶ョ縺ョ ClassAtom 縺セ縺ァ縺ョ髢薙�蜈ィ縺ヲ縺ョ譁�ュ励r蜷ォ繧縲� ClassAtom 縺悟腰荳縺ョ譁�ュ励r陦ィ縺輔↑縺� (萓九∴縺ー縲∽ク譁ケ縺� \w) 縺ェ繧峨�縲√∪縺� 1 縺、逶ョ縺ョ ClassAtom 縺ョ繧ウ繝シ繝峨�繧、繝ウ繝亥、縺� 2 縺、逶ョ縺ョ ClassAtom 縺ョ繧ウ繝シ繝峨�繧、繝ウ繝亥、繧医j螟ァ縺阪>縺ェ繧峨�縲√お繝ゥ繝シ縺檎匱逕溘☆繧九�
繝代ち繝シ繝ウ縺梧枚蟄励こ繝シ繧ケ繧貞玄蛻・縺励↑縺�→縺励※繧ゅ∫ッ�峇縺ョ荳。遶ッ縺ョ譁�ュ励こ繝シ繧ケ縺ッ縲∵枚蟄励�遽�峇縺ク縺ョ謇螻槫愛螳壹↓縺翫>縺ヲ驥崎ヲ√〒縺ゅk縲ゅ◆縺ィ縺医�縲√ヱ繧ソ繝シ繝ウ /[E-F]/i 縺ッ譁�ュ� E, F, e, f 縺ォ縺ョ縺ソ繝槭ャ繝√☆繧九�縺ォ蟇セ縺励※縲√ヱ繧ソ繝シ繝ウ /[E-f]/i 縺ッ螟ァ譁�ュ怜ー乗枚蟄怜性繧√◆ ASCII 譁�ュ励□縺代〒縺ェ縺剰ィ伜捷 [, \, ], ^, _, ` 縺ォ繧ゅ�繝�メ縺吶k縲�
譁�ュ� - 縺ッ譁�ュ鈴壹j縺ォ謇ア繧上l縺�k縺九∫ッ�峇繧堤、コ縺帙k縺九〒縺ゅk縲� - 縺梧枚蟄鈴壹j縺ォ謇ア繧上l繧九�縺ッ縲√◎繧後′ ClassRanges 縺ョ譛蛻昴∪縺溘�譛蠕後�譁�ュ励〒縺ゅk蝣エ蜷医∫ッ�峇謖�ョ壹�蜈磯�ュ縺セ縺溘�譛ォ蟆セ縺ァ縺ゅk蝣エ蜷医∫峩蠕後↓遽�峇謖�ョ壹′邯壹¥蝣エ蜷医〒縺ゅk縲�
逕滓�隕丞援 ClassAtom :: - 縺ョ隧穂セ。縺ッ縲� 1 蛟九�譁�ュ� - 縺ァ讒区�縺輔l繧� CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 ClassAtom :: ClassAtomNoDash 縺ョ隧穂セ。縺ッ縲� ClassAtomNoDash 隧穂セ。縺ァ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 ClassAtomNoDash :: SourceCharacter but not one of \ ] - 縺ョ隧穂セ。縺ッ縲� SourceCharacter 縺ァ陦ィ縺輔l繧区枚蟄励〒讒区�縺輔l繧� 1 隕∫エ�縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 ClassAtomNoDash :: \ ClassEscape 縺ョ隧穂セ。縺ッ縲� ClassEscape 隧穂セ。縺ァ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 ClassEscape :: DecimalEscape 縺ッ縲∵ャ。縺ョ繧医≧縺ォ隧穂セ。縺輔l繧�:
逕滓�隕丞援 ClassEscape :: b 縺ッ縲� 1 蛟九�譁�ュ� <BS> (Unicode 蛟、 0008) 縺ァ讒区�縺輔l繧� CharSet繧定ソ斐@縺ヲ隧穂セ。縺輔l繧九�
逕滓�隕丞援 ClassEscape :: CharacterEscape 縺ョ隧穂セ。縺ッ縲� CharacterEscape 隧穂セ。縺ァ譁�ュ励r蜿門セ励@縲√◎縺ョ譁�ュ励〒讒区�縺輔l繧� 1 隕∫エ�縺ョ CharSet 繧定ソ斐☆縲�
逕滓�隕丞援 ClassEscape :: CharacterClassEscape 縺ョ隧穂セ。縺ッ縲� CharacterClassEscape 隧穂セ。縺ァ CharSet 繧貞叙蠕励@縲√◎縺ョ CharSet 繧定ソ斐☆縲�
蜿り�ュ蝣ア隗」隱ャ: ClassAtom 縺ッ縲� \b, \B, 蠕梧婿蜿ら�繧帝勁縺乗ョ九j縺ョ豁」隕剰。ィ迴セ縺ァ險ア縺輔l繧倶ササ諢上�繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ繧剃スソ逕ィ縺ァ縺阪k縲� CharacterClass 蜀�Κ縺ォ縺翫>縺ヲ縲� \b 縺ッ蠕碁譁�ュ� (backspace character) 繧呈э蜻ウ縺励∽ク譁ケ \B 縺ィ蠕梧婿蜿ら�縺ッ繧ィ繝ゥ繝シ繧堤匱逕溘&縺帙k縲� ClassAtom 蜀�Κ縺ァ縺ョ蠕梧婿蜿ら�縺ョ菴ソ逕ィ縺ッ繧ィ繝ゥ繝シ繧貞シ輔″襍キ縺薙☆縲�
pattern 縺� [[Class]] 繝励Ο繝代ユ繧」縺� "RegExp" 縺ァ縺ゅk繧ェ繝悶ず繧ァ繧ッ繝� R 縺ァ縲√°縺、 flags 縺� undefined 縺ェ繧峨�縲� R 繧偵◎縺ョ縺セ縺セ霑斐☆縲ゅ◎縺�〒縺ェ縺代l縺ー RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ (繧サ繧ッ繧キ繝ァ繝ウ 15.10.4.1) 繧貞他蜃コ縺励√◎繧後↓蠑墓焚 pattern 縺ィ flags 繧呈ク。縺励√◎縺ョ繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ォ讒狗ッ峨&繧後k繧ェ繝悶ず繧ァ繧ッ繝医r霑斐☆縲�
RegExp 縺� new
蠑上�荳驛ィ縺ィ縺励※蜻シ蜃コ縺輔l繧九→縺阪√◎繧後�繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ァ縺ゅk: 縺昴l縺ッ縲∵眠縺溘↓逕滓�縺輔l繧九が繝悶ず繧ァ繧ッ繝医r蛻晄悄蛹悶☆繧九�
pattern 縺� [[Class]] 繝励Ο繝代ユ繧」縺� "RegExp" 縺ァ縺ゅk 繧ェ繝悶ず繧ァ繧ッ繝� R 縺ァ縲√°縺、 flags 縺� undefined 縺ェ繧峨�縲� P 繧� R 縺ョ讒狗ッ峨↓逕ィ縺�k pattern 縺ィ縺励� F 繧� R 縺ョ讒狗ッ峨↓逕ィ縺�k flags 縺ィ縺吶k縲� pattern 縺� [[Class]] 繝励Ο繝代ユ繧」縺� "RegExp" 縺ァ縺ゅk 繧ェ繝悶ず繧ァ繧ッ繝� R 縺ァ縲√°縺、 flags 縺� undefined 縺ァ縺ェ縺�↑繧峨�縲� 萓句、� TypeError 繧呈兜縺偵k縲� 縺昴≧縺ァ縺ェ縺代l縺ー縲� P 繧� pattern 縺� undefined 縺ェ繧峨�遨コ譁�ュ怜�縲√◎縺�〒縺ェ縺代l縺ー ToString(pattern) 縺ィ縺励� F 繧� flags 縺� undefined 縺ェ繧峨�遨コ譁�ュ怜�縲√◎縺�〒縺ェ縺代l縺ー ToString(flags) 縺ィ縺吶k縲�
譁ー隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医� global 繝励Ο繝代ユ繧」縺ッ縲� F 縺梧枚蟄� "g" 繧貞性繧√� true, 縺昴≧縺ァ縺ェ縺代l縺ー false 縺ァ縺ゅk Boolean 蛟、縺ォ險ュ螳壹&繧後k縲�
譁ー隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医� ignoreCase 繝励Ο繝代ユ繧」縺ッ縲� F 縺梧枚蟄� "i" 繧貞性繧√� true, 縺昴≧縺ァ縺ェ縺代l縺ー false 縺ァ縺ゅk Boolean 蛟、縺ォ險ュ螳壹&繧後k縲�
譁ー隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医� multiline 繝励Ο繝代ユ繧」縺ッ縲� F 縺梧枚蟄� "m" 繧貞性繧√� true, 縺昴≧縺ァ縺ェ縺代l縺ー false 縺ァ縺ゅk Boolean 蛟、縺ォ險ュ螳壹&繧後k縲�
F 縺� "g", "i", "m" 莉・螟悶�譁�ュ励r蜷ォ繧縺ェ繧峨�縲√∪縺滉ク譌ヲ蜃コ迴セ縺励◆繧ゅ�縺ィ蜷後§繧ゅ�繧貞性繧縺ェ繧峨�縲∽セ句、� SyntaxError 繧呈兜縺偵k縲�
P 縺ョ譁�ュ励′譖ク蠑� Pattern 繧呈戟縺溘↑縺�↑繧峨�縲∽セ句、� SyntaxError 繧呈兜縺偵k縲ゅ◎縺�〒縺ェ縺代l縺ー縲∵眠隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医↓ Pattern 縺ョ隧穂セ。 ("compiling") 縺ォ繧医j蠕励i繧後k [[Match]] 繝励Ο繝代ユ繧」繧呈戟縺溘○繧九� Pattern 縺ョ隧穂セ。縺御セ句、� SyntaxError 繧呈兜縺偵※繧ゅh縺�%縺ィ縺ォ豕ィ諢上� (Note: pattern 縺� StringLiteral 縺ェ繧峨�縲� 譁�ュ怜�縺� RegExp 縺ォ繧医▲縺ヲ蜃ヲ逅�&繧後k蜑阪↓縲�壼クク縺ョ繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ縺ョ螟画鋤縺悟ョ溯。後&繧後k縲� RegExp 縺ォ繧医▲縺ヲ隱崎ュ倥&繧後k繧ィ繧ケ繧ア繝シ繝励す繝シ繧ア繝ウ繧ケ繧� pattern 縺ォ蜷ォ繧√↑縺代l縺ー縺ェ繧峨↑縺�↑繧峨�縲� StringLiteral 縺ョ蜀�ョケ縺ョ蠖「謌先凾縺ォ蜑企勁縺輔l繧九%縺ィ繧帝亟縺舌◆繧√↓縲� StringLiteral 蜀��譁�ュ� "\" 縺ッ繧ィ繧ケ繧ア繝シ繝励&繧後↑縺代l縺ー縺ェ繧峨↑縺��)
譁ー隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医� source 繝励Ο繝代ユ繧」縺ッ縲� P 縺ォ蝓コ縺・縺襲attern 縺ョ譖ク蠑上�螳溯」�セ晏ュ倥�譁�ュ怜�蛟、縺ォ險ュ螳壹&繧後k縲�
譁ー隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医� lastIndex 繝励Ο繝代ユ繧」縺ッ縲� 0 縺ォ險ュ螳壹&繧後k縲�
譁ー隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医� [[Prototype]] 繝励Ο繝代ユ繧」縺ッ縲� RegExp.prototype 縺ョ蛻晄悄蛟、縺ァ縺ゅk繧ェ繝ェ繧ク繝翫Ν縺ョ RegExp 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医↓險ュ螳壹&繧後k縲�
譁ー隕上↓讒狗ッ峨&繧後◆繧ェ繝悶ず繧ァ繧ッ繝医� [[Class]] 繝励Ο繝代ユ繧」縺ッ縲� "RegExp" 縺ォ險ュ螳壹&繧後k
RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ョ縺ョ蜀�Κ [[Prototype]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲� Function 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝� (繧サ繧ッ繧キ繝ァ繝ウ 15.3.4) 縺ァ縺ゅk縲�
蜀�Κ繝励Ο繝代ユ繧」縺ィ length 繝励Ο繝代ユ繧」 (蛟、縺ッ 2) 縺ョ莉悶↓縲� RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ッ谺。縺ョ繝励Ο繝代ユ繧」繧呈戟縺、:
RegExp.prototype 縺ョ蛻晄悄蛟、縺ッ RegExp 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝� (繧サ繧ッ繧キ繝ァ繝ウ 15.10.6) 縺ァ縺ゅk縲�
縺薙�繝励Ο繝代ユ繧」縺ッ螻樊ァ { DontEnum, DontDelete, ReadOnly } 繧呈戟縺、縺ケ縺阪〒縺ゅk縲�
RegExp 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医�蜀�Κ [[Prototype]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲� Object 繝励Ο繝医ち繧、繝励〒縺ゅk縲� RegExp 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医�蜀�Κ [[Class]] 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲� "Object" 縺ァ縺ゅk縲�
RegExp 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医�縲∫峡閾ェ縺ョ valueOf 繝励Ο繝代ユ繧」繧呈戟縺溘↑縺�; 縺励°縺励↑縺後i縲� valueOf 繝励Ο繝代ユ繧」繧� Object 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医°繧臥カ呎価縺吶k縲�
RegExp 繝励Ο繝医ち繧、繝励が繝悶ず繧ァ繧ッ繝医�繝励Ο繝代ユ繧」縺ァ縺ゅk髢「謨ー縺ョ莉・荳九�隱ャ譏弱↓縺翫>縺ヲ縲√ヵ繝ャ繝シ繧コ "縺薙� RegExp 繧ェ繝悶ず繧ァ繧ッ繝�" 縺ッ縲�未謨ー蜻シ蜃コ縺励� this
蛟、縺ァ縺ゅk繧ェ繝悶ず繧ァ繧ッ繝医r蜿ら�縺吶k; this
蛟、 縺悟�驛ィ [[Class]] 繝励Ο繝代ユ繧」縺� "RegExp" 縺ョ繧ェ繝悶ず繧ァ繧ッ繝医〒縺ェ縺��エ蜷医�縲∽セ句、� TypeError 縺梧兜縺偵i繧後k縲�
RegExp.prototype.constructor 縺ョ蛻晄悄蛟、縺ッ縲∫オ�セシ縺ソ RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ァ縺ゅk縲�
豁」隕剰。ィ迴セ縺ォ蟇セ縺励※ string 縺ョ豁」隕剰。ィ迴セ繝槭ャ繝√r陦後>縲√�繝�メ縺ョ邨先棡繧貞性繧 Array 繧ェ繝悶ず繧ァ繧ッ繝医√∪縺滓枚蟄怜�縺ォ繝槭ャ繝√@縺ェ縺九▲縺溷�エ蜷医� null 繧定ソ斐☆縲�
譁�ュ怜� ToString(string) 縺ッ縲∵ャ。縺ョ繧医≧縺ォ豁」隕剰。ィ迴セ繝代ち繝シ繝ウ縺ョ逋コ逕溘r讀懃エ「縺輔l繧�:
蠑� RegExp.prototype.exec(string) != null 縺ィ蜷梧ァ倥〒縺ゅk縲�
src 繧堤樟蝨ィ縺ョ豁」隕剰。ィ迴セ繧定。ィ縺� Pattern 縺ョ譖ク蠑上�譁�ュ怜�縺ィ縺吶k縲� src 縺ッ縲� source 繝励Ο繝代ユ繧」縺セ縺� RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ォ萓帷オヲ縺輔l繧九た繝シ繧ケ繧ウ繝シ繝峨→蜷御ク縺ァ縺ゅ▲縺ヲ繧ゅ↑縺上※繧ゅh縺�; 縺溘□縲� src 縺檎樟蝨ィ縺ョ豁」隕剰。ィ迴セ縺ョ flags 繧剃シエ縺」縺ヲ RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ォ萓帷オヲ縺輔l縺溘↑繧峨�縲∫オ先棡縺ョ豁」隕剰。ィ迴セ縺ッ縲∫樟蝨ィ縺ョ豁」隕剰。ィ迴セ縺ィ蜷梧ァ倥↓謖ッ繧九∪繧上↑縺代l縺ー縺ェ繧峨↑縺��
toString 縺ッ縲∵枚蟄怜� "/", src, "/" 縺ョ騾」邨舌〒蠖「謌舌&繧後k譁�ュ怜�繧定ソ斐☆; global 繝励Ο繝代ユ繧」縺� true 縺ェ繧峨� "g"縲� ignoreCase 繝励Ο繝代ユ繧」縺� true 縺ェ繧峨� "i"縲� multiline 繝励Ο繝代ユ繧」縺� true 縺ェ繧峨� "m" 繧偵�」邨舌☆繧区枚蟄怜�縺ォ霑ス蜉�縺吶k縲�
NOTE 螳溯」��縲� src 蜀��迚ケ谿頑枚蟄励r繧ィ繧ケ繧ア繝シ繝励☆繧九◆繧√↓縲� RegExp 繧ウ繝ウ繧ケ繝医Λ繧ッ繧ソ縺ク貂。縺輔l繧九た繝シ繧ケ縺ィ逡ー縺ェ繧九%縺ィ繧定ィア蜿ッ縺輔l縺ヲ縺�k src 縺ョ蛻ゥ逕ィ繧帝∈謚槭@縺ヲ繧医>縲ゆセ九∴縺ー縲� new
RegExp("/") 縺九i蠕励i繧後k豁」隕剰。ィ迴セ縺ォ縺翫>縺ヲ縲� src 縺ッ縲∵焚縺ゅk蜿ッ閭ス諤ァ縺ョ荳ュ縺九i縲� "/" 縺セ縺溘� "\/" 縺ァ縺ゅj縺医k縲ょセ瑚��縲∵嶌蠑� RegularExpressionLiteral 繧呈戟縺、 toString 蜻シ蜃コ縺励�螳悟�縺ェ邨先棡 ("/\//") 繧定ィア蜿ッ縺吶k縲�
RegExp 繧、繝ウ繧ケ繧ソ繝ウ繧ケ縺ッ縲∽ク願ィ倥↓謖�ョ壹&繧後k縺昴� [[Prototype]] 繧ェ繝悶ず繧ァ繧ッ繝医°繧峨�繝ュ繝代ユ繧」繧堤カ呎価縺励√∪縺滓ャ。縺ョ繝励Ο繝代ユ繧」繧呈戟縺、縲�
source 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲� 迴セ蝨ィ縺ョ豁」隕剰。ィ迴セ繧偵≠繧峨o縺� Pattern 縺ョ譖ク蠑上�譁�ュ怜�蛟、縺ァ縺ゅk縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ッ縲∝ア樊ァ { DontDelete, ReadOnly, DontEnum } 繧呈戟縺、縺ケ縺阪〒縺ゅk縲�
global 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲� flags 縺梧枚蟄� "g" 繧貞性繧縺九←縺�°繧堤、コ縺� Boolean 蛟、縺ァ縺ゅk縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ッ縲∝ア樊ァ { DontDelete, ReadOnly, DontEnum } 繧呈戟縺、縺ケ縺阪〒縺ゅk縲�
ignoreCase 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲� flags 縺梧枚蟄� "i" 繧貞性繧縺九←縺�°繧堤、コ縺� Boolean 蛟、縺ァ縺ゅk縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ッ縲∝ア樊ァ { DontDelete, ReadOnly, DontEnum } 繧呈戟縺、縺ケ縺阪〒縺ゅk縲�
multiline 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲� flags 縺梧枚蟄� "m" 繧貞性繧縺九←縺�°繧堤、コ縺� Boolean 蛟、縺ァ縺ゅk縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ッ縲∝ア樊ァ { DontDelete, ReadOnly, DontEnum } 繧呈戟縺、縺ケ縺阪〒縺ゅk縲�
lastIndex 繝励Ο繝代ユ繧」縺ョ蛟、縺ッ縲∵枚蟄怜�縺ョ谺。縺ョ繝槭ャ繝√r髢句ァ九☆繧倶ス咲スョ繧堤音螳壹☆繧区紛謨ー縺ァ縺ゅk縲ゅ%縺ョ繝励Ο繝代ユ繧」縺ッ縲∝ア樊ァ { DontDelete, DontEnum } 繧呈戟縺、縺ケ縺阪〒縺ゅk縲�