SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
正規表現と正規言語
2020年12月19日
自己紹介
名前: 三宅 英明
Twitter: @mollifier
神戸のプログラマ
正規表現とは
正規表現とは
[lL]inux
こういうやつ
正規表現とは
使い方はこの本とかに書いてあります
正規表現とは
もともとは形式言語理論という計算機の理論に関す
る用語
正規表現とは
なんか難しそうですが、基礎の部分は意外と簡単で
す
正規表現とは
今日はそれについてお話します
正規表現とは
理論の部分はWikipedia 日本語版の次のページか
ら引用しています
正規表現
正規言語
形式言語理論における正規表現の定義
論理的な正規表現の定義を紹介します
空集合は正規表現である
任意の1文字は正規表現である
XとYが正規表現ならば、 XY 、 X|Y 、 X* は正規
表現である
XY は、XのあとにYつなげてできる集合
X|Y は、XとYの和集合
X* は、Xを0回以上繰り返した集合
優先順位を表す () は使ってよい
形式言語理論における正規表現の定義
これらで表現できるパターンのことを正規表現と呼び
ます
形式言語理論における正規表現の定義
さらにくだけた表現で言い換えると、次のやつを並べ
たパターンのこと
空文字列
文字そのもの
| 記号 : OR
* 記号 : 0回以上の繰り返し
() 記号 : 優先順位を表すカッコ
形式言語理論における正規表現の定義
これらを好きなだけ並べてできるパターンのことを正
規表現と呼びます
形式言語理論における正規表現の定義
例
f
foo
fo*
fo*|(bar)*
形式言語理論における正規表現の定義
使える記号(メタ文字)は、 | と * 、優先順位の () だ
けです
形式言語理論における正規表現の定義
それだけ? もっと他にもメタ文字あるでしょ?
形式言語理論における正規表現の定義
確かに他にもありますが、実はさっき上げたメタ文字
だけで表現できます
形式言語理論における正規表現の定義
たとえば . 任意の1文字は、
a|b|c|d|...(省略)
こんなふうに全部の文字を | で並べればよい
形式言語理論における正規表現の定義
同じ理屈で、 [abc] a, b, cいずれか1文字は、
a|b|c
形式言語理論における正規表現の定義
a? aが0回または1回は
空文字列|a
形式言語理論における正規表現の定義
a{2,} aが2回以上は
aaa*
形式言語理論における正規表現の定義
こんな風に | 、 * 、 () だけに置き換えできます
正規表現の特徴
空文字列
文字そのもの
| 記号 : OR
* 記号 : 0回以上の繰り返し
() 記号 : 優先順位を表すカッコ
これらを好きなだけ並べてできるパターンのことを正
規表現と呼ぶ
正規表現の特徴
なぜ文字列検索にこの規則が用いられたのか? この
規則を満たしていたら何がうれしいのか?
正規表現の特徴
それは、実装の都合があります
正規表現の特徴
検索パターンが指定されたとして、当然それがマッチ
するかどうかを判定する処理が必要になります
正規表現の特徴
それってなんか難しそう。どうやって実装するのか?
正規表現の特徴
そのとき、
正規表現で記述できる形式言語のことを正規言
語と呼ぶ
正規言語は決定性有限オートマトン(DFA)によ
って受理可能である
逆に、決定性有限オートマトン(DFA)によって受
理可能である言語は正規言語に等しい
という性質を使います
正規表現の特徴
もう少しくだけた表現で言うと、
正規表現で指定した検索パターンは、決定性有
限オートマトン(DFA)であればマッチしたかどう
か判別できる
正規表現の特徴
決定性有限オートマトン(DFA)って何?
正規表現の特徴
ここでは説明しません
正規表現の特徴
もしDFAが実装できたとします。そうするとさっきの理
論によって、どんな正規表現でもマッチしたかどうか
必ず判別できます
正規表現の特徴
また、逆にDFAで検索できるすべてのパターンは正規
表現の形で表せます。
正規表現の特徴
さっきあげた | 、 * 、 () だけで十分ということです
ね。 もしこれらでは表せない別の記号を足すと、DFA
では検索できなくなります。
正規表現の特徴
つまり、正規表現の実装ができるのか、という問題は
DFAが実装できるのか、という問題に帰着されます
正規表現の特徴
じゃあそのDFAというのは実装できるのか?
正規表現の特徴
実は僕はその辺あまりくわしくないのですが、まあ普
通にできるようです
正規表現の特徴
実際にDFAをつかって実装されている正規表現エン
ジンはあります
正規表現の特徴
さらに、非決定性有限オートマトン(NFA)というものも
あります
正規表現の特徴
これらは等価です。 つまり、DFAで判定できればNFA
でも判定できます。逆も真です。
正規表現の特徴
実際にNFAをつかって実装されている正規表現エン
ジンもあります
正規表現の特徴
まとめ
正規表現の特徴
正規表現で使える記号は少ない。 | 、 * 、 () だ
け
でも組み合わせれば、(万能ではないが)かなり
多くのパターンが指定できる
正規表現の特徴
正規表現であればDFAで判定可能
正規表現であればNFAでも判定可能
正規表現の特徴
DFAやNFAの実装は、まあやればできる
正規表現の特徴
というわけで、いろんなパターンが指定できて、実装も
まあできるので、文字列検索に使ったら便利やん、と
いうことで使われ始めた
正規表現の特徴
というわけで、正規表現の理論的なお話をしました
正規表現の特徴
これからは、正規表現って分かる? とか聞かれたら
正規表現の特徴
「正規表現? ああ正規言語の表現のことね」
「それやったらDFAによって受理可能やね」
正規表現の特徴
とか返してあげましょう!
正規表現の特徴
ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language ModelsDeep Learning JP
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会takehikoihayashi
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイcvpaper. challenge
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...Deep Learning JP
 
「世界モデル」と関連研究について
「世界モデル」と関連研究について「世界モデル」と関連研究について
「世界モデル」と関連研究についてMasahiro Suzuki
 
データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法Tatsuya Shirakawa
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?hoxo_m
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some PreliminaryDeep Learning JP
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心takehikoihayashi
 
強化学習その1
強化学習その1強化学習その1
強化学習その1nishio
 
Cosine Based Softmax による Metric Learning が上手くいく理由
Cosine Based Softmax による Metric Learning が上手くいく理由Cosine Based Softmax による Metric Learning が上手くいく理由
Cosine Based Softmax による Metric Learning が上手くいく理由tancoro
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
機械学習の未解決課題
機械学習の未解決課題機械学習の未解決課題
機械学習の未解決課題Hiroyuki Masuda
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用gree_tech
 
Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換
Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換
Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換Koichi Hamada
 
因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説Shiga University, RIKEN
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向ohken
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Yuya Unno
 

Was ist angesagt? (20)

【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models【DL輪読会】Scaling Laws for Neural Language Models
【DL輪読会】Scaling Laws for Neural Language Models
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
 
「世界モデル」と関連研究について
「世界モデル」と関連研究について「世界モデル」と関連研究について
「世界モデル」と関連研究について
 
数式からみるWord2Vec
数式からみるWord2Vec数式からみるWord2Vec
数式からみるWord2Vec
 
データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法データに内在する構造をみるための埋め込み手法
データに内在する構造をみるための埋め込み手法
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心相関と因果について考える:統計的因果推論、その(不)可能性の中心
相関と因果について考える:統計的因果推論、その(不)可能性の中心
 
強化学習その1
強化学習その1強化学習その1
強化学習その1
 
Cosine Based Softmax による Metric Learning が上手くいく理由
Cosine Based Softmax による Metric Learning が上手くいく理由Cosine Based Softmax による Metric Learning が上手くいく理由
Cosine Based Softmax による Metric Learning が上手くいく理由
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
機械学習の未解決課題
機械学習の未解決課題機械学習の未解決課題
機械学習の未解決課題
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
 
Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換
Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換
Generative Adversarial Networks (GAN) の学習方法進展・画像生成・教師なし画像変換
 
因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説
 
最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向最適輸送の計算アルゴリズムの研究動向
最適輸送の計算アルゴリズムの研究動向
 
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
 

Kürzlich hochgeladen

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Kürzlich hochgeladen (9)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版) 2024年4月作成
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

正規表現と正規言語