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
正規表現のはなし / regex theory
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
USAMI Kosuke
October 15, 2022
Science
920
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
正規表現のはなし / regex theory
※ Docswell に移行しました
https://www.docswell.com/s/usami-k/Z389Q2-regex-theory
USAMI Kosuke
October 15, 2022
More Decks by USAMI Kosuke
See All by USAMI Kosuke
Onsager代数とその周辺 / Onsager algebra tsudoi
usamik26
0
700
Apple HIG 正式名称クイズ結果発表 / HIG Quiz Result
usamik26
0
260
ゆめみ大技林製作委員会の立ち上げの話 / daigirin project
usamik26
0
390
@ViewLoadingプロパティラッパの紹介と自前で実装する方法 / @ViewLoading property wrapper implementation
usamik26
0
550
これからUICollectionViewを実践活用する人のためのガイド / Guide to UICollectionView
usamik26
1
820
Xcodeとの最近の付き合い方のはなし / Approach To Xcode
usamik26
2
730
UICollectionView Compositional Layout
usamik26
0
870
Coding Swift with Visual Studio Code and Docker
usamik26
0
580
Swift Extension for Visual Studio Code
usamik26
2
1.1k
Other Decks in Science
See All in Science
Non-Gaussian, nonlinear causal discovery with hidden variables and application
sshimizu2006
0
140
Kaggle: NeurIPS - Open Polymer Prediction 2025 コンペ 反省会
calpis10000
0
600
20251212_LT忘年会_データサイエンス枠_新川.pdf
shinpsan
0
290
プロジェクト「Azayaka」のSARの数式とジオメトリ
syuchimu
0
350
ダメな自分の育て方―性格タイプの「劣等機能」から理解するニガテ克服術
ppillc
0
170
不動産業界における業界特化のデータ整備とAI活用 ─Vertical DataとVertical AI─
estie
1
640
生成AI・プレプリント時代における 研究成果公開の再設計 ― トップカンファレンス文化はどこへ向かうのか / Redesigning the Dissemination of Research Outputs in the Age of Generative AI and Preprints — Where Is the Top-Conference Culture Heading?
ykiyota
0
27k
YouTubeにおける撤回論文の参照実態 / metascience-meetup2026
corgies
3
290
検索と推論タスクに関する論文の紹介
ynakano
1
230
データベース08: 実体関連モデルとは?
trycycle
PRO
0
1.2k
1. CPC理論の展開と集合的知能モデル(JSAI2026 KS-27 集合的予測符号化と新たな知性の時代)
hayashiyus884
1
200
データベース06: SQL (3/3) 副問い合わせ
trycycle
PRO
1
980
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
250
Prompt Engineering for Job Search
mfonobong
0
350
Ethics towards AI in product and experience design
skipperchong
2
310
Code Review Best Practice
trishagee
74
20k
Thoughts on Productivity
jonyablonski
76
5.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Spectacular Lies of Maps
axbom
PRO
1
820
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
Six Lessons from altMBA
skipperchong
29
4.3k
How to Talk to Developers About Accessibility
jct
2
240
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
210
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Transcript
正規表現のはなし 宇佐見公輔 第25回日曜数学会(2022年10月15日)
自己紹介 宇佐見公輔(うさみこうすけ) 職業:プログラマ 趣味:数学 近況 第3回すうがく徒のつどい:講演(4月) iOSDC Japan 2022:登壇、技術記事執筆(6〜9月) 技術書典13:技術同人誌執筆(8〜9月)
正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 2
正規表現とは プログラミング言語で、文字列の検索(パターンマッチ)に使われる汎用的な文法。 テキストエディターなど各種ツールでの文字列検索機能でもよく使われる。 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 3
正規表現の記法 「 a 」は a にマッチ、「 b 」は b にマッチ
「 (a|b) 」は a または b にマッチ 「 [a-z] 」は a 〜 z のどれでもマッチ 「 . 」は任意の1文字にマッチ 「 a* 」は任意個の a からなる文字列にマッチ(空文字列、 a 、 aa 、、) 「 a+ 」は1個以上の a からなる文字列にマッチ( a 、 aa 、 aaa 、、) 「 (a|b)* 」は aaa 、 abab 、 baab 、 bbbbb 、などにマッチ 「 .* 」は任意個の文字からなる文字列にマッチ 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 4
正規表現の基本三演算 正規表現は次の3つの演算で生成される。 連接:正規表現 と に対して、それを並べた 選択:正規表現 と に対して、そのどちらかにマッチする 繰り返し:正規表現 に対して、その任意個の繰り返し
例: 「 a+ 」は「 aa* 」と書ける 「 [a-z] 」は「 (a|b|c|...|z) 」と書ける 「 . 」はすべての文字の選択で書ける(※文字集合は有限集合) 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 5
余談:正規表現という言葉 正規表現は「regular expression」の訳だが・・・。 「regular」 一般に「regular」は「正則」と訳されることが多そう そもそも「regular」という言葉が妥当かどうか? 「expression」 一般に「expression」は「式」と訳されることが多そう 「表現」と言われると「representation」を連想するかも? 正規表現のはなし
/ 宇佐見公輔 / 第25回日曜数学会 6
正規表現と集合 正規表現そのものを直接考える代わりに、集合で考える。 正規表現 にマッチする文字列の集合を の受理文字列集合と呼び、 と書く。 例: ある文字列が正規表現 にマッチするかという問題が、集合 の元かという問題
になる。 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 7
正規言語 文字列集合を定式化しておく(形式言語理論)。 :文字集合(有限集合とする) :文字列(= の元を有限個並べたもの)全体の集合 長さ の文字列を と書くことにする(空文字列) とする たとえば、
のとき の部分集合 を言語と呼ぶ 言語 がある正規表現 の受理文字列集合 と一致するとき、 を正規言語 と呼ぶ 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 8
正規言語の定式化 正規表現を使わずに正規言語を定義することができる。 空集合 は正規言語、空文字列のみの集合 は正規言語 について は正規言語 と が正規言語ならば、選択 は正規言語
と が正規言語ならば、連接 は正規言語 が正規言語ならば、Kleene閉包 は正規言語 これらの条件にあらわれない言語は正規言語ではない ※Kleene閉包 は、 の元を重複を許して有限個取り出して連接した文字列の全体 からなる集合。 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 9
正規言語の代数構造 選択の結合法則 選択の交換法則 選択の単位元 連接の結合法則 連接の単位元 零元 分配法則 、 正規表現のはなし
/ 宇佐見公輔 / 第25回日曜数学会 10
正規性の判定 上の言語 があるとき、 上の同値関係 を次で定義する。 Myhill-Nerodeの定理 上の言語 が正規言語であることと、商集合 が有限集合であることは 同値。
これを言語の正規性の判定に使うことができる。また、より条件が緩いポンピング補 題を正規性の判定に使うことができる。 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 11
より進んだ話題 有限オートマトン 正規表現マッチングの計算モデルとして、有限オートマトンがある 正規表現と決定性有限オートマトンは等価 正規性の利点 最適化問題が決定問題であり、そのアルゴリズムの方法論も確立されている 非正規な正規表現 プログラミングで使われている正規表現のうち後方参照や再帰の記法は、実 は正規ではない 形式言語理論
形式言語の理論は、正規表現以外にもさまざまな応用がある 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 12
参考文献 ※右端はiOSDC Japan 2022のセッション 正規表現のはなし / 宇佐見公輔 / 第25回日曜数学会 13