Slide 1

Slide 1 text

ϠόΠɻ

Slide 2

Slide 2 text

3F%P4ϠόΠɻ

Slide 3

Slide 3 text

·͡ͰϠόΠΑɺϚδϠόΠɻ

Slide 4

Slide 4 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 ͜ͷίϐϖΛɺ

Slide 5

Slide 5 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 ͜ͷਖ਼نදݱͰϚονϯά͢Δͱɺ /^.+(Ӊ஦|ϠόΠ|[\s\S])*.+$/

Slide 6

Slide 6 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 /^.+(Ӊ஦|ϠόΠ|[\s\S])*.+$/ ໿ඵ͔͔Δɻ ˞.BD#PPL1SP J ্Ͱ/PEF KTͰ࣮ߦͨ݁͠Ռ

Slide 7

Slide 7 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 /^.+(Ӊ஦|ϠόΠ|[\s\S])*.+$/ จࣈͰඵ͔͔Δͷ͸ϠόΠɻ

Slide 8

Slide 8 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 /^.+(Ӊ஦|ϠόΠ|[\s\S])*.+$/ ݱ୅ͷ$16͕ɺ ඵͰจࣈఔ౓ॲཧͰ͖ͳ͍Θ͚͕ͳ͍ɻ

Slide 9

Slide 9 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 /^.+(Ӊ஦|ϠόΠ|[\s\S])*.+$/ ͡Ό͋Կ͕ѱ͍ʁ

Slide 10

Slide 10 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 /^.+(Ӊ஦|ϠόΠ|[\s\S])*.+$/ ਖ਼نදݱͷϚονϯά࣌ؒͷരൃɺ

Slide 11

Slide 11 text

ϠόΠɻӉ஦ϠόΠɻ·͡ͰϠόΠΑɺϚδϠόΠɻ 
 Ӊ஦ϠόΠɻ 
 ·ͣ޿͍ɻ΋͏޿͍ͳΜͯ΋Μ͡Όͳ͍ɻ௒޿͍ɻ 
 ޿͍ͱ͔ͬͯ΋ 
 ʮ౦ژυʔϜݸͿΜ͘Β͍ʁʯ 
 ͱ͔ɺ΋͏ɺͦ͏͍͏Ϩϕϧ͡Όͳ͍ɻ 
 Կ͠ΖແݶɻεήΣʂͳΜ͔୯Ґͱ͔ແ͍ͷɻԿ௶ͱ͔Կᶨͱ͔Λ௒ӽͯ͠Δɻແݶͩ͠௒޿͍ɻ 
 ͔͠΋๲ுͯ͠ΔΒ͍͠ɻϠόΠΑɺ๲ுͩΑɻ 
 ͩͬͯී௨͸஍ٿͱ͔๲ு͠ͳ͍͡ΌΜɻͩͬͯࣗ෼ͷ෦԰ͷ࿓Լ͕ͩΜͩΜ৳ͼͯͬͨΒࠔΔ͡ΌΜɻτΠϨͱ͔௒ԕ͍ͱ͔ࠔΔ ͬ͠ΐɻ 
 ௨ֶ࿏͕৳ͼͯɺҰ೥ͷͱ͖͸ెา෼ͩͬͨͷʹɺࡾ೥ͷͱ͖͸ࣗసंͰೋ࣌ؒͱ͔ٽͬ͘͠ΐɻ 
 ͔ͩΒ஍ٿͱ͔๲ு͠ͳ͍ɻ࿩ͷΘ͔ΔϠπͩɻ 
 ͚ͲӉ஦͸ϠόΠɻͦΜͳͷؾʹ͠ͳ͍ɻ๲ு͠·͘Γɻ࠷΋ԕ͔͘Β౸ୡ͢Δޫͱ͔؍ଌͯ͠΋Α͘Θ͔Μͳ͍͘Β͍ԕ͍ɻϠό ͗͢ɻ 
 ແݶ͍͚ͬͯͨͲɺ΋͔ͨ͠͠Β༗ݶ͔΋͠Μͳ͍ɻͰ΋༗ݶͬͯࣄʹ͢Δͱ 
 ʮ͡Ό͋ɺӉ஦ͷ୺ͷ֎ଆͬͯφχΑʁʯ 
 ͬͯࣄʹͳΔ͠ɺͦΕ͸୭΋Θ͔Βͳ͍ɻϠόΠɻ୭ʹ΋෼͔Βͳ͍ͳΜͯੌ͗͢Δɻ 
 ͋ͱ௒פ͍ɻ໿έϧϏϯɻઁࢯͰݴ͏ͱʵˆɻϠόΠɻפ͗͢ɻόφφͰఝଧͭՋ΋ͳ͘ࢮ͵ɻා͍ɻ 
 ͦΕʹ௒Կ΋ແ͍ɻ௒ΨϥΨϥɻͦΕʹ௒ͷΜͼΓɻԯ೥ͱ͔ฏؾͰग़ͯ͘Δɻԯ೥ͯɻখֶੜͰ΋ݴΘͶ͐Αɺ࠷ۙɻ 
 ͳΜͭͬͯ΋Ӊ஦͸അྗ͕ੌ͍ɻແݶͱ͔ฏؾͩ͠ɻ 
 ͏ͪΒͳΜͯແݶͱ͔͔͔ͨͩੵ෼ܭࢉͰग़͖͚ͯͨͩͰ্ख͘ѻ͑ͳ͍͔Β༗ݶʹͨ͠ΓɺGͱஔ͍ͯΈͨΓɺԋࢉࢠ࢖ͬͨΓ͢ ͷʹɺ 
 Ӊ஦͸શવฏؾɻແݶΛແݶͷ··ѻͬͯΔɻੌ͍ɻϠόΠɻ 
 ͱʹ͔͘و༷ΒɺӉ஦ͷϠό͞Λ΋ͬͱ஌Δ΂͖ͩͱࢥ͍·͢ɻ 
 /^.+(Ӊ஦|ϠόΠ|[\s\S])*.+$/ ͜Ε͕3F%P4ɻ

Slide 12

Slide 12 text

@MakeNowJust ౻࿘େ໻ cYAPC::Japan::Online 2022 3F%P4ݕग़ͷ࠷ઌ୺ 
 SFDIFDLͷ঺հ

Slide 13

Slide 13 text

ਖ਼نදݱͷϚονϯά࣌ؒ͸ 
 രൃ͢Δ

Slide 14

Slide 14 text

Ͳ͏ʹ͔ͯ͠ਖ਼نදݱΛ 
 ҆શʹ࢖͍͍ͨ ʮʜʜ%'"ܕͷϚονϯάʹ͢Ε͹ʁʯ ʮʜʜλΠϜΞ΢τ͢Ε͹͍͍Μ͡Όͳ͍ʁʯ

Slide 15

Slide 15 text

͢΂ͯͷਖ਼نදݱͷϚονϯά͕࣌ؒ 
 രൃ͢ΔΘ͚͡Όͳ͍ /^(foo|bar)*$/ ҆શ /^<[^@<]*@[^>@]*>$/ /^(fizz|buzz|fizzbuzz)*$/ രൃ͢Δ /^<[^<]*@[^>]*>$/

Slide 16

Slide 16 text

ਖ਼نදݱ͕҆શ͔Ͳ͏͔Λ൑ఆ͍ͨ͠ /^(foo|bar)*$/ ҆શ /^<[^@<]*@[^>@]*>$/ /^(fizz|buzz|fizzbuzz)*$/ രൃ͢Δ /^<[^<]*@[^>]*>$/

Slide 17

Slide 17 text

ˠ3F%P4ݕग़ /^(foo|bar)*$/ ҆શ /^<[^@<]*@[^>@]*>$/ /^(fizz|buzz|fizzbuzz)*$/ രൃ͢Δ /^<[^<]*@[^>]*>$/

Slide 18

Slide 18 text

രൃ͢Δਖ਼نදݱͷಛ௃ /^(fizz|buzz|fizzbuzz)*$/ രൃ͢Δ /^<[^<]*@[^>]*>$/

Slide 19

Slide 19 text

ਖ਼نදݱͷരൃͷ࢓ํ͸छྨ͋Δ จࣈྻͷ௕͞ ʹରͯ͠Ϛονϯά࣌ؒͷ࠷ѱܭࢉྔ͕ɺ ʹͳΔ ࢦ਺తͳ ৔߹ 
 ɹྫ/^(fizz|buzz|fizzbuzz)*$/ ߈ܸจࣈྻ('fizzbuzz' x 27) . 'x' 
 ɹจࣈҎԼͰ߈ܸͰ͖ΔͨΊͱͯ΋ϠόΠɻ ʹͳΔ ৐తͳ ৔߹ 
 ɹྫ/^<[^<]*@[^>]*>$/ ߈ܸจࣈྻ'<' . ('@' x 54773) 
 ɹ߈ܸʹ͸਺ઍʙ਺ສจࣈඞཁͳͨΊɺۓٸ౓͸௿Ίɻ 
 ɹ͔͠͠ɺ4UBDL0WFS fl PX΍$MPVE fl BSF͕࣮ࡍʹ3F%P4Ͱμ΢ϯͨ͠ͷ͸͜ͷέʔεɻ n O(2n) O(n2)

Slide 20

Slide 20 text

ʹͳΔ ࢦ਺తͳ ৔߹ͷಛ௃ O(2n) ܁Γฦ͠ͷதͷϚονϯάͷ࢓ํ͕ᐆດ ྫ͑͹/^(fizz|buzz|fizzbuzz)*$/ͷ৔߹ɺ 
 "fizzbuzz"ͷϚονϯάͷ࢓ํ͕ɺ 
 1."fizzbuzz"ͱ2."fizzbuzz"ͷ௨Γ͋Δɻ "fizzbuzz"͕OݸฒΜͰ͍ͯ࠷ޙͰόοΫτϥοΫ͢Δͱɺ 
 ྆ํͷ௨ΓํΛͦΕͧΕʹରͯ͠ࢼ͞ͳ͚Ε͹͍͚ͳ͍ͨΊɺ 
 ࢦ਺తͳ ͷܭࢉྔʹͳΔɻ O(2n)

Slide 21

Slide 21 text

ʹͳΔ ৐తͳ ৔߹ͷಛ௃ O(n2) ͭͷ܁Γฦ͠ͱͦͷؒͷϚονϯάͷ࢓ํ͕ᐆດ ྫ͑͹/^<[^<]*@[^>]*>$/ͷ৔߹ɺ 
 "@"ͷจࣈͰ[^<]*ͱ[^>]*Λ܁Γฦ͢ͷͱ 
 @Ͱ܁Γฦ͠ΛҠಈ͢Δ͜ͱ͕Ͱ͖Δɻ "@"͕OݸฒΜͰ͍ͯ࠷ޙͰόοΫτϥοΫ͢Δͱɺ 
 Ͳ͜Ͱࠨ͔Βӈͷ܁Γฦ͠ʹҠಈ͢Δ͔͕ᐆດʹͳΔͨΊɺ 
 ৐తͳ ͷܭࢉྔʹͳΔɻ O(n2)

Slide 22

Slide 22 text

͡Ό͋ਖ਼نදݱΛݟͯ 
 ൑அ͢Ε͹͍͍ʁ

Slide 23

Slide 23 text

ͦΕ͸݁ߏ೉͍͠ ׳ΕΔͱ݁ߏ΍ΕΔ͚Ͳɺ 
 ਖ਼֬ੑΛอূ͢Δͷ͸೉͍͠ 
 ਖ਼نදݱ͸SFHFYMJCDPNΑΓ /([^\.\?\!]*)[\.\?\!]/ /"((\\")|[^"(\\")])+"/ /^[0-9]{1,}(,[0-9]+){0,}$/ /"[^"\r\n]*"/ /(\S*)+(\u007C)+(\S*)/ /\s*[a-zA^Z,\s]+\s*$/

Slide 24

Slide 24 text

ΦʔτϚτϯʹม׵ͯ͠ΈΑ͏

Slide 25

Slide 25 text

ʹͳΔ ࢦ਺తͳ ৔߹ͷಛ௃ O(2n) &%" &YQPOFOUJBM%FHSFF"NCJHVJUZ ߏ଄ q fizz buzz fizzbuzz q w w ͋Δจࣈྻ Ͱ͋Δঢ়ଶ ʹ 
 ໭ͬͯ͘Δํ๏͕௨Γ͋Δ w q q fizzbuzz fizzbuzz ੔ཧ

Slide 26

Slide 26 text

ʹͳΔ ৐తͳ ৔߹ͷಛ௃ O(n2) *%" *O fi OJUF%FHSFF"NCJHVJUZ ߏ଄ q1 q2 [^<] [^>] @ q1 q2 w ಉ͡จࣈྻ Ͱঢ়ଶ ʹ໭ͬͯ͜Εͯɺ 
 ͦͷؒ΋ભҠͰ͖Δɻ w q1 , q2 w w

Slide 27

Slide 27 text

&%"ߏ଄ɾ*%"ߏ଄ͷ୳ࡧΞϧΰϦζϜ ΦʔτϚτϯͷੵߏ੒ͷΑ͏ʹͯ͠ঢ়ଶΛ૊ʹͨ͠ΦʔτϚτϯΛߏ੒͢Δɻ 
 ͷͱ͖ʹ ͜ͷભҠؔ਺Λڧ࿈݁੒෼෼ղͯ͠ɺ 
 ಉ͡ڧ࿈݁੒෼ʹ ͱ ͨͩ͠ ͷΑ͏ͳ 
 ঢ়ଶͷ૊͕͋Ε͹&%"ߏ଄͕ଘࡏ͢Δɻ *%"ߏ଄ͷ৔߹͸ɺঢ়ଶΛͭ૊ʹͯ͠ 
 ͱ ͷΑ͏ͳ૊Λ୳͢͜ͱͰൃݟͰ͖Δɻ q11 a q12 ∧ q21 a q22 (q11 , q21 ) a (q12 , q22 ) (q1 , q1 ) (q2 , q3 ) q2 ≠ q3 (q1 , q1 , q2 ) (q1 , q2 , q2 )

Slide 28

Slide 28 text

&%"ߏ଄ɾ*%"ߏ଄ͷੑ࣭ &%"ߏ଄͕ଘࡏ͢Δ Ϛονϯάͷ࠷ѱܭࢉྔ͕ࢦ਺తʹͳΔ *%"ߏ଄͕ଘࡏ͢Δ Ϛονϯάͷ࠷ѱܭࢉྔ͕৐తʹͳΔɻ ͭ·Γɺ ɹɹ&%"ߏ଄ɾ*%"ߏ଄ͷଘࡏΛ൑ఆ͢Δ͜ͱͰɺ 
 ɹɹਖ਼نදݱͷϚονϯά͕࣌ؒരൃ͢Δ͔͸ 
 ɹɹཧ࿦తʹ͸ਖ਼֬ʹ൑ఆͰ͖Δɻ ⟺ ⟺

Slide 29

Slide 29 text

3F%P4ݕग़ɾ׬ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʜʜʁ

Slide 30

Slide 30 text

ຊ౰ʹʁ

Slide 31

Slide 31 text

ΦʔτϚτϯͷղੳʹΑΔ3F%P4ݕग़ͷݶք ༗ݶঢ়ଶΦʔτϚτϯΛར༻͍ͯ͠ΔͷͰɺ 
 ม׵ͷͰ͖ͳ͍ޙํࢀর \1, \2 ͷΑ͏ͳ֦ு͕͋Δͱղੳ͕ෆՄೳɻ /<(\w+)>(.*?)<\/\1>/ /(["'])[^"']+\1/

Slide 32

Slide 32 text

ΦʔτϚτϯͷղੳʹΑΔ3F%P4ݕग़ͷݶք ղੳΞϧΰϦζϜͷܭࢉྔ΋ঢ়ଶ਺ʹରͯ͠ ͱɺ 
 ෳࡶͳਖ਼نදݱͷ৔߹͸ղੳʹ͕͔͔࣌ؒΔɻ ͞ΒʹɺόοΫτϥοΫͷڍಈΛਖ਼֬ʹ࠶ݱ͢Δ৔߹͸ܾఆԽ͕ඞཁʹͳΓɺ 
 ͦͷ৔߹ͷղੳͷܭࢉྔ͸ࢦ਺తʹͳͬͯ͠·͏ɻ O(n6) /(\w+(\.\w+)*)@(([\w\-]{1,32}\.){0,4}[a-zA-Z]{1,32}|\[(\d{0,3}(\.\d{0,3}){0,4})\])/

Slide 33

Slide 33 text

ΦʔτϚτϯͷղੳʹΑΔ3F%P4ݕग़ͷݶք ͭ·Γɺਖ਼نදݱ͕ෳࡶͳ৔߹΍ɺਖ਼نݴޠͰͳ͍֦ுʹରͯ͠͸ɺ 
 ΦʔτϚτϯͷղੳʹΑΔݕग़͸ແྗ /<(\w+)>(.*?)<\/\1>/ /(["'])[^"']+\1/ /(\w+(\.\w+)*)@(([\w\-]{1,32}\.){0,4}[a-zA-Z]{1,32}|\[(\d{0,3}(\.\d{0,3}){0,4})\])/

Slide 34

Slide 34 text

3F%P4ݕग़ͷ࠷ઌ୺΁

Slide 35

Slide 35 text

ಈతղੳ 
 ࣮ࡍʹϚονϯάΛߦͳͬͯɺ࣌ؒͷ͔͔Δ΋ͷΛ୳͢ ਖ਼نදݱ 
 ࣮૷ ೖྗ Ϛονϯά͕࣌ؒ രൃ͢Δ΋ͷΛൃݟ 3F%P4੬ऑ 
 ͱͯ͠ݕग़ "foo" จࣈྻ

Slide 36

Slide 36 text

ϑΝδϯά 
 จࣈྻΛϥϯμϜʹͨ͘͞Μੜ੒ͯ͠ɺಈతղੳΛ͢Δ "foo" "bar" "foobar" ͨ͘͞Μͷจࣈྻ ਖ਼نදݱ 
 ࣮૷ ೖྗ Ϛονϯά͕࣌ؒ രൃ͢Δ΋ͷΛൃݟ 3F%P4੬ऑ 
 ͱͯ͠ݕग़

Slide 37

Slide 37 text

Ҩ఻తΞϧΰϦζϜ 
 Ϛονϯάʹ࣌ؒͷ͔͔ΔจࣈྻΛֻ͚߹Θͤͯɺ 
 ΑΓ࣌ؒͷ͔͔ΔจࣈྻΛੜ੒͢Δ Ҩ఻తΞϧΰϦζϜͰ 
 Ϛονϯά࣌ؒΛ૿Ճͤ͞Δ "foo" "bar" "foobar" ͨ͘͞Μͷจࣈྻ ਖ਼نදݱ 
 ࣮૷ ೖྗ Ϛονϯά͕࣌ؒ രൃ͢Δ΋ͷΛൃݟ 3F%P4੬ऑ 
 ͱͯ͠ݕग़

Slide 38

Slide 38 text

ϑΝδϯάʹΑΔ3F%P4ݕग़ ಈతղੳʹΑΔ3F%P4ݕग़ख๏ɻ ϥϯμϜੑ͕͋ΔͷͰਖ਼֬ੑʹ΍΍೉͕͋Δ͕ Ͱ͖ͳ͍ΑΓ͸Ϛγ ɺ 
 ޙํࢀরͳͲͷ֦ு΍ঢ়ଶ਺ͷଟ͘ͳΔෳࡶͳਖ਼نදݱʹ΋ରԠͰ͖Δɻ Ҩ఻తΞϧΰϦζϜͰ 
 Ϛονϯά࣌ؒΛ૿Ճͤ͞Δ "foo" "bar" "foobar" ͨ͘͞Μͷจࣈྻ ਖ਼نදݱ 
 ࣮૷ ೖྗ Ϛονϯά͕࣌ؒ രൃ͢Δ΋ͷΛൃݟ 3F%P4੬ऑ 
 ͱͯ͠ݕग़

Slide 39

Slide 39 text

ϑΝδϯά࠷ڧʁ

Slide 40

Slide 40 text

ͳ৔߹ͷ߈ܸจࣈྻ͸ 
 ਺ઍʙ਺ສจࣈ O(n2)

Slide 41

Slide 41 text

Ԑ͕γΣΠΫεϐΞΛॻ͘ͷΛ 
 ଴ͭΘ͚ʹ͸͍͔ͳ͍ ͍͘ΒҨ఻తΞϧΰϦζϜΛ࢖ͬͯ΋ɺ ਺ສจࣈͷ࠷దԽΛ্ख͘ߦ͏Ͱ͖Δ͔͸ӡήʔͳͷͰɺ ͷ৔߹͸͏·͘ൃݟͰ͖ͳ͍͜ͱ͕ଟ͘ͳͬͯ͠·͏ O(n2)

Slide 42

Slide 42 text

จࣈྻͷ܁Γฦ͠ߏ଄ Ϛονϯά࣌ؒΛരൃͤ͞Δจࣈྻ͸෦෼తʹ܁Γฦ͍ͯ͠Δɻ 
 ྫ('fizzbuzz' x 27) . 'x' '<' . ('@' x 54773) ੜ੒͞ΕΔจࣈྻʹ࣍ͷ จࣈΛ܁Γฦ͢ͱ͍͏ҙຯͷه߸ Λ௥Ճͯ͠ɺ 
 ͦΕΛؚΊͯϑΝδϯάΛߦ͏ɻ ͜ΕʹΑͬͯɺ৐తͳ৔߹Ͱ΋ϑΝδϯάʹΑͬͯݕग़͕ՄೳʹͳΔɻ n □ n

Slide 43

Slide 43 text

ϑΝδϯά࠷ڧ 
 ͲͷΑ͏ͳ৔߹Ͱ΋രൃ͢Δਖ਼نදݱΛਖ਼͘͠ൃݟͰ͖ΔΑ͏ʹͳͬͨ

Slide 44

Slide 44 text

࣮૷͸ʁ

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

SFDIFDL ൃදऀ !.BLF/PX+VTU ͷ։ൃ͍ͯ͠Δ3F%P4ݕग़ϥΠϒϥϦɻ ࣮૷ݴޠ͸4DBMBɻ+BWB4DSJQU͔Β΋ར༻Մೳɻ ࠓճઆ໌ͨ͠ɺΦʔτϚτϯͷղੳʹΑΔํ๏ͱϑΝδϯάʹΑΔํ๏ͷ 
 ྆ํͷํ๏Λ࣮૷͍ͯ͠Δɻ IUUQTNBLFOPXKVTUMBCTHJUIVCJPSFDIFDL

Slide 47

Slide 47 text

ΦʔτϚτϯͷղੳ͸ਖ਼͚֬ͩͲɺ 
 ͕͔͔࣌ؒΓͦ͏ͳ৔߹͸ϑΝδϯάʹ੾Γସ͍͑ͨ

Slide 48

Slide 48 text

ݕग़ख๏ͷࣗಈ੾Γସ͑ SFDIFDLͰ͸ɺՄೳͳݶΓΦʔτϚτϯͷղੳʹΑΔख๏Λ࢖ͬͯɺ 
 ࣌ؒతɾਫ਼౓తʹϑΝδϯάͷํ͕ద੾ͩͱ൑அͨ͠৔߹ʹɺ 
 ϑΝδϯάʹ੾Γସ͑Δػೳ͕࣮૷͞Ε͍ͯΔɻ 
 σϑΥϧτͰ͜ͷϞʔυʹͳ͍ͬͯΔɻ ͲͪΒ͕ద੾͔͸ɺਖ਼نදݱͷେ͖͞΍ 
 ΦʔτϚτϯͷঢ়ଶ਺ͳͲ͔Β൑அ͞ΕΔɻ

Slide 49

Slide 49 text

ରԠ͍ͯ͠Δਖ਼نදݱͷํݴ ݱࡏ͸+BWB4DSJQUͷਖ਼نදݱʹͷΈରԠɻ /&5 +BWB 1$3& 1FSM 1ZUIPO 3VCZͷਖ਼نදݱͷରԠΛ࣮૷தɻ +BWB4DSJQUҎ֎ͷݴޠͷਖ਼نදݱ͸͋·Γݫີͳ࢓༷͕ͳ͍ͷͰɺ 
 ͳΜͱͳ͘ରԠ͢Δ༧ఆɻ

Slide 50

Slide 50 text

࣮૷ؒʹ߹Θͳͯ͘ ͝ΊΜͳ͍͞

Slide 51

Slide 51 text

࢖͍ํ ී௨ʹϥΠϒϥϦͱͯ͠࢖͑Δɻ const { check } = require('recheck'); 
 console.log(await check('^(a|a)*$', '')); &4-JOUͷϓϥάΠϯ eslint-plugin-redos ΋ެ։͍ͯ͠ΔͷͰɺ 
 &4-JOUΛ࢖͍ͬͯΔϓϩδΣΫτʹ͙͢ʹಋೖՄೳɻ

Slide 52

Slide 52 text

IUUQTNBLFOPXKVTUMBCTHJUIVCJPSFDIFDLQMBZHSPVOE

Slide 53

Slide 53 text

଎౓ ݸͷਖ਼نදݱͷ3F%P4ݕग़ʹ෼ඵɻ ฏۉͯ͠ɺਖ਼نදݱݸลΓඵఔ౓ɻ ମײͱͯ͠͸ɺ$*ͳͲͰར༻͢Δ෼ʹ͸े෼࢖͑Δɻ ΤσΟλͳͲͰϦΞϧλΠϜʹݕग़͠ଓ͚Δͱɺͪΐͬͱ΋͔ͨͭ͘΋ɻ

Slide 54

Slide 54 text

࣮੷ ࣮ࡍʹ͍͔ͭ͘ͷϥΠϒϥϦͷ੬ऑੑΛൃݟɺใࠂ͍͍ͯ͠Δɻ NBSLEPXOJU 
 ɾIUUQTHJUIVCDPNNBSLEPXOJUNBSLEPXOJUTFDVSJUZBEWJTPSJFT()4"WGDRWGWSD NBSLFE 
 ɾIUUQTHJUIVCDPNNBSLFEKTNBSLFETFDVSJUZBEWJTPSJFT()4"SSSNRKNWIG 
 ɾIUUQTHJUIVCDPNNBSLFEKTNBSLFETFDVSJUZBEWJTPSJFT()4"WISDYYHK SFDIFDLΛ࢖ͬͯ੬ऑੑΛൃݟͨ͠৔߹ɺͪ͜Βʹ΋࿈བྷ͍͚ͯͨͩ͠Δͱ͋Γ͕͍ͨͰ͢ɻ

Slide 55

Slide 55 text

͋ͳͨͱSFDIFDLɺ ࠓ͙͢μ΢ϯϩʔυ

Slide 56

Slide 56 text

ൃදͷ·ͱΊ w 3F%P4ݕग़͸਺ֶతʹఆࣜԽͰ͖Δղ͚Δ໰୊ɻ 
 ͳΜ͔;Θͬͱͨ͠ؾ෼Ͱܭࢉྔ͕രൃ͢ΔΘ͚Ͱ͸ͳ͍ɻ w ͱ͸͍͑ݱ࣮ͷਖ਼نදݱΛର৅ʹ͢Δͱ໰୊͕͋ΔͷͰɺ 
 ϑΝδϯάͳͲΛซ༻͢Δͷ͕࠷ઌ୺ͷ3F%P4ݕग़ɻ w 3F%P4ݕग़ϥΠϒϥϦͱͯ͠SFDIFDL͕͋Δɻ࢖ͬͯ΍͍ͬͯͩ͘͞ɻ w ͱ͸͍͑׬શʹਖ਼֬ͳ3F%P4ݕग़Λݱ࣮తͳ࣌ؒͰߦ͏ͷ͸ 
 ΄ͱΜͲෆՄೳͳͷͰɺݕग़݁Ռ͚ͩΛݟͯ҆શͩͱ൑அͤͣɺ 
 λΠϜΞ΢τͳͲΛೖΕΔ΋ͷॏཁɻ

Slide 57

Slide 57 text

׬

Slide 58

Slide 58 text

ݕূϑΣʔζ ࣮ࡍͷਖ਼نදݱ࣮૷͸࠷దԽͳͲ͕͞Ε͍ͯͯɺ 
 ཧ࿦௨ΓʹϚονϯά͕࣌ؒ૿Ճ͠ͳ͍Մೳੑ͕͋Δɻ ͦͷΑ͏ͳ৔߹ͷͨΊʹSFDIFDLͰ͸ɺ 
 ಘΒΕͨ߈ܸจࣈྻΛ࣮ࡍʹॲཧܥʹೖྗͯ͠ɺ 
 Ϛονϯάʹ͕͔͔࣌ؒΔ͔ݕূ͢Δػೳ͕ར༻Ͱ͖·͢ɻ ͕͔͔࣌ؒΔͷͰσϑΥϧτͰ͸ແޮ