Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
正規表現#TechLunch
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Livesense Inc.
PRO
April 21, 2014
Technology
55
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
正規表現#TechLunch
正規表現
2013/04/16 (水) 12:00-13:00 @ Livesense TechLunch
発表者:松坂 高嗣
Livesense Inc.
PRO
April 21, 2014
More Decks by Livesense Inc.
See All by Livesense Inc.
Rubyはただの⾔語に⾮ず
livesense
PRO
0
480
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
120
27新卒_総合職採用_会社説明資料
livesense
PRO
0
6.6k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
11k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
520
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.8k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
660
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
72k
Other Decks in Technology
See All in Technology
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
740
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
1.7k
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
第3回しろおびセキュリティスポンサーセッション
log0417
0
180
Sets in Go
ramalho
1
310
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
240
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
120
FPGAが実現する遠方宇宙の高空間分解能天体撮影 -大型地上望遠鏡の視力を補正する「補償光学」とは?-
komei_mt
0
230
強化学習「理論」入門
enakai00
3
3.6k
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
モバイルアプリ開発概論2026
recruitengineers
PRO
5
580
TypeScript入門 2026
recruitengineers
PRO
3
570
Featured
See All Featured
Docker and Python
trallard
47
4.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
700
Designing for Timeless Needs
cassininazir
1
440
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Technical Leadership for Architectural Decision Making
baasie
3
470
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
ラッコキーワード サービス紹介資料
rakko
1
4.3M
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Embracing the Ebb and Flow
colly
88
5.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Transcript
ਖ਼نදݱ 5BLBTIJ.BUTVTBLB
ࢲਖ਼نදݱ͕͖Ͱ͢ w ʮᩦཉͳڧཉͳʯͳͲͱ͍͏ܗ༰ࢺΛৗతʹ ͏ͷਖ਼نදݱΛॻ͍ͯΔ࣌͘Β͍Ͱ͢
˒˒ˑ w ຊਖ਼نදݱॳ৺ऀ͚ʹ w ਖ਼نදݱͷ"#$Λ w ͓͠Α͏ͱࢥͬͨͷͰ͕͢
͋Δͷ͜ͱ w "͞Μʮਖ਼نදݱͷൃදฉ͖͍ͨͰ͢ʯ w দࡔʮ͋ʔɺඇΤϯδχΞ͚Ͱ͍͜͏ͱࢥͬͯΔ ͷͰɺৄ͘͠ৄઆਖ਼نදݱͱ͍͏͍͍ຊ͕͋Δ͔ ΒͦΕΛʯ w "͞Μʮ͋ɺͦΕϑΫϩ͞ΜͷຊͰ͔͢ɻ࣋ͬͯ ·͢ʯ
w দࡔʮʯ
ଟগํసͯ͠
ਖ਼نදݱͷؾ࣋ͪʹ ͳͬͯߟ͑Δ
ͱ͍͏͜ͱΛ ͓͠·͢
˒˒˒
جૅࣝ
ਖ਼نදݱ w 3FHVMBS&YQSFTTJPO w 3FHFY'F%FYͬΆ͘ൃԻ͢Δͷ͕Α͍ w Ε͐ͬ͘͢͡
ਖ਼نදݱ ෳͷදݱΛਖ਼نԽͨ͠ͷ
Ͳ͏͍͏ͷʁ w ʮBCDʯͱʮBCʯΛද͍ͨ͠߹ w BC Dc w ʮʯʮʯʮʯΛද͢߹ w
cc ʮ¥d+ʯաͩΑɺͱ͍͏Λ͢Δ͖ͩΖ͏͕Ͳ͜Ͱ͢Δ͖͔ɻ
Մೳੑͷۭؒ BCD BC ਖ਼نදݱBC͕ ද͠ಘΔۭؒ BC BCDE BDE ௨ৗͷݕࡧͷ߹ͱू߹ͱ෦ू߹͕ٯͱͳΔɻ
දݱ͍ͨ͠ର㱠දݱ w ਖ਼نදݱʮ͋ΔՄೳੑͷۭؒʯΛද͢ه๏ w ਖ਼نදݱΛॻ͘͜ͱ͕తͰ͋Δ͜ͱͳ͍ w ྺ࢙తʹจ๏Λදݱ͢ΔͨΊͷه๏ͱͯ͠࡞ ΒΕ͕ͨɺࠓͰύλʔϯϚον༻ͷϝλݴޠ ͷ͜ͱΛࢦ͢͜ͱ͕ଟ͍ BNFόοΧεφΞه๏ɻ
ੜࣗ༝จ๏ͱ͔νϣϜεΩʔ֊ͱ͔ͦ͏͍͏എܠʹ৮ΕΔ͖͔ʁ
ి൪߸ͷنଇ w #/' w 5&-/6.44&1/6.44&1/6.4 w /6.4&.15:c/6./6.4 w /6.ccccccccc w
4&1&.15:c w ਖ਼نදݱ w =E\^ =E\^ =E\^ #/'͋Μ·Γ֮͑ͯͳ ͍ͷͰ͚ͬ͜͏ద ಉ͡දݱΛ͢Δͷʹਖ਼نදݱγϯϓϧͩΑͶͱɻ
ΘΕํ w ͨͱ͑େྔͷ$47͔ΒϝʔϧΞυϨεΛൈ͖ ग़ͨ͠Γ w ి൪߸ͬΆ͍ͷΛݟ͚ͨΓ w 63-ͷύλʔϯΛมͨ͠Γ w ࢯͶͱ͔'
,ͱ͔ΞΧϯจࣈྻΛʮѪͯ͠Δʯ ʹஔͨ͠Γ ͍͍ͩͨݕࡧͱஔͩΑͱ
جຊϧʔϧ
ه๏؆୯Ͱ͢ w ී௨ͷจࣈͦͷจࣈͦͷͷΛද͢ w શͯͷจࣈͷՄೳੑ͕͋Δ w ྔࢦఆࢠͰɺલͷύλʔϯΛ܁Γฦ͢ճΛࢦఆ͢Δ w
͔ w ·͍ͨͬͺ͍ w ·͍ͨͬͺ͍ w ʢʣͰάϧʔϐϯά͢Δ͜ͱ͕Ͱ͖Δ ͍ͪΖʔ͞Μ͋ͨΓ͔Β“|” ͱ͔ {n,m} ͱ͔ ^,$ͱ͔ͦ͜ΒลʹಥͬࠐΈ͕ೖΔͱ͏Ε͍͕ͨ͠ͿΜೖΒͳ͍ɻ
؆୯؆୯
ਖ਼نදݱͷ ؾ࣋ͪ
ʜʁ
+BWBͷؾ࣋ͪʹͳΔ 㲈+BWB7.ͷؾ࣋ͪʹͳΔ
ਖ਼نදݱͷؾ࣋ͪʹͳΔ 㲈ਖ਼نදݱղऍܥͷؾ࣋ͪʹ ͳΔ
ਓίʔυΛ௨ͯ͠ػցͱ ͓͢Δ দӬ JVM લా ਖ਼نදݱ Τϯδϯ ਖ਼نදݱ Javaͷίʔυ
ίʔυΛݟͯͯμϝͩ ػցͷؾ࣋ͪʹͳΖ͏
ͱ͜ΖͰ
ਖ਼نදݱ ҰछͷΦʔτϚτϯͱͯ͠ ίϯύΠϧ͞ΕΔ
/'"ͱ%'" w /'" w ඇܾఆੑ༗ݶΦʔτϚτϯ w %'" w ܾఆੑ༗ݶΦʔτϚτϯ ΦʔτϚτϯͱͳΜͧతͳ͓͠Ζ͘ͳ͍ͷͰ͠ͳ͍ɻ
ͱΓ͋͑ͣঢ়ଶΛ࣋ͬͯͯͦΕ͕ೖྗʹԠͯ͡มΘΔͷΑͶతͳײ͡Ͱɻ
ਖ਼نදݱͷؾ࣋ͪʹͳΔ ਖ਼نදݱղऍܥͷؾ࣋ͪʹͳΔ ΦʔτϚτϯͷؾ࣋ͪʹͳΔ
ͳͬͯΈͨ
ΦʔτϚτϯͷͭΓʹͳͬͯ ਖ਼نදݱΛಡΈऔΔ
BC EF DIBS B DIBS C DIBS B
DIBS C HSPVQ lEFz DIBS B DIBS C RVFTUJPO HSPVQ lEFz ී௨ͷจࣈ ʮจࣈΛද͢ਖ਼نදݱʯͱͯ͠ॲཧ͢Δ ׅހʮάϧʔϓʯͱͯ͠ ׅހͷதͷจࣈྻΛͯ͠࠶ؼతʹॲཧ͢Δ ྔࢦఆࢠલͷύλʔϯΛ แઁ͢Δύλʔϯͱͯ͠ॲཧ͢Δ
͜ΕʹΑͬͯ ʮਖ਼نදݱʯͦͷͷ͕ ߏங͞ΕΔ
࡞ͬͯΈͨ
pythonͩΑ
ਖ਼نදݱ͕ݕࡧ͚ͩͷ༻ ్ͩͱ୭͕ܾΊͨͷ͔ TODO:࣋ͬͯߦ͖ํ
ਖ਼نදݱ͔ΒจࣈྻΛੜ ͍͍ͨͬͯ͠͡Όͳ͍
·ͱΊ
ਖ਼نදݱͷؾ࣋ͪΛཧղ͢Ε Α͍ਖ਼نදݱ͕ॻ͚Δ ʮܨ͕ͬͯͳ͍͡ΌΜʯͱ͍͏ಥͬࠐΈ৺ೖΔͣɻ
ϧʔϧͰʮcʯʢબʣͱ͔ \ ^Έ͍ͨͳྔࢦఆࢠɺ લํࢀরΛল͍ͨͷ ࣮͕͔͔ͬͨ͠ΒͰ͢ ͢Έ·ͤΜ Φν2
͝ਗ਼ௌ͋Γ͕ͱ͏͟͝ ͍·ͨ͠
ͱ͍͏͜ͱͰ Կ͔࣭ʁ