Suche senden
Hochladen
書こう!正規表現 vol.4 肯定/否定 先読み/戻り読み
•
Als ODP, PDF herunterladen
•
1 gefällt mir
•
1,564 views
Takaaki Hirano
Folgen
Regex tutorial
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 24
Jetzt herunterladen
Empfohlen
curl_multi_exec()でFire-and-forgetに失敗した話
curl_multi_exec()でFire-and-forgetに失敗した話
Takaaki Hirano
プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介
Takaaki Hirano
金曜だけどデザインパターンでも勉強しよう
金曜だけどデザインパターンでも勉強しよう
Takaaki Hirano
PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠
Takaaki Hirano
非同期データ更新のためにメッセージキューを導入した(い)話
非同期データ更新のためにメッセージキューを導入した(い)話
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.4 Builder
月曜だからデザインパターンでも勉強しよう vol.4 Builder
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
Takaaki Hirano
Empfohlen
curl_multi_exec()でFire-and-forgetに失敗した話
curl_multi_exec()でFire-and-forgetに失敗した話
Takaaki Hirano
プログラミング言語のマスコットとか紹介
プログラミング言語のマスコットとか紹介
Takaaki Hirano
金曜だけどデザインパターンでも勉強しよう
金曜だけどデザインパターンでも勉強しよう
Takaaki Hirano
PHP array_uintersectに潜む罠
PHP array_uintersectに潜む罠
Takaaki Hirano
非同期データ更新のためにメッセージキューを導入した(い)話
非同期データ更新のためにメッセージキューを導入した(い)話
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.4 Builder
月曜だからデザインパターンでも勉強しよう vol.4 Builder
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
月曜だからデザインパターンでも勉強しよう vol.3 Factory Method & Abstract Factory
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
月曜だからデザインパターンでも勉強しよう vol.2 Flyweight
Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
Takaaki Hirano
Mysql(クライアント)の出力が変わるオプション達
Mysql(クライアント)の出力が変わるオプション達
Takaaki Hirano
PHPUnit 4.0で追加されたwillReturn*()の紹介
PHPUnit 4.0で追加されたwillReturn*()の紹介
Takaaki Hirano
書こう!正規表現 vol.3 ()
書こう!正規表現 vol.3 ()
Takaaki Hirano
sedで複数行処理 使ってみようNを
sedで複数行処理 使ってみようNを
Takaaki Hirano
ctagsでvimにひきこもる
ctagsでvimにひきこもる
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(例外)
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(基本)
書こう!正規表現 vol.2 文字クラス(基本)
Takaaki Hirano
書こう!ユニットテスト vol.2 どうやって?
書こう!ユニットテスト vol.2 どうやって?
Takaaki Hirano
書こう!正規表現 vol.1 正規表現 is 何
書こう!正規表現 vol.1 正規表現 is 何
Takaaki Hirano
書こう!ユニットテスト vol.1 ナンデ?
書こう!ユニットテスト vol.1 ナンデ?
Takaaki Hirano
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Takaaki Hirano
Cocproxy
Cocproxy
Takaaki Hirano
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
業務で生成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...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Weitere ähnliche Inhalte
Mehr von Takaaki Hirano
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
Takaaki Hirano
Mysql(クライアント)の出力が変わるオプション達
Mysql(クライアント)の出力が変わるオプション達
Takaaki Hirano
PHPUnit 4.0で追加されたwillReturn*()の紹介
PHPUnit 4.0で追加されたwillReturn*()の紹介
Takaaki Hirano
書こう!正規表現 vol.3 ()
書こう!正規表現 vol.3 ()
Takaaki Hirano
sedで複数行処理 使ってみようNを
sedで複数行処理 使ってみようNを
Takaaki Hirano
ctagsでvimにひきこもる
ctagsでvimにひきこもる
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(例外)
Takaaki Hirano
書こう!正規表現 vol.2 文字クラス(基本)
書こう!正規表現 vol.2 文字クラス(基本)
Takaaki Hirano
書こう!ユニットテスト vol.2 どうやって?
書こう!ユニットテスト vol.2 どうやって?
Takaaki Hirano
書こう!正規表現 vol.1 正規表現 is 何
書こう!正規表現 vol.1 正規表現 is 何
Takaaki Hirano
書こう!ユニットテスト vol.1 ナンデ?
書こう!ユニットテスト vol.1 ナンデ?
Takaaki Hirano
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Takaaki Hirano
Cocproxy
Cocproxy
Takaaki Hirano
Mehr von Takaaki Hirano
(13)
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
月曜だからデザインパターンでも勉強しよう vol.1 それは何 & Singleton
Mysql(クライアント)の出力が変わるオプション達
Mysql(クライアント)の出力が変わるオプション達
PHPUnit 4.0で追加されたwillReturn*()の紹介
PHPUnit 4.0で追加されたwillReturn*()の紹介
書こう!正規表現 vol.3 ()
書こう!正規表現 vol.3 ()
sedで複数行処理 使ってみようNを
sedで複数行処理 使ってみようNを
ctagsでvimにひきこもる
ctagsでvimにひきこもる
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(例外)
書こう!正規表現 vol.2 文字クラス(基本)
書こう!正規表現 vol.2 文字クラス(基本)
書こう!ユニットテスト vol.2 どうやって?
書こう!ユニットテスト vol.2 どうやって?
書こう!正規表現 vol.1 正規表現 is 何
書こう!正規表現 vol.1 正規表現 is 何
書こう!ユニットテスト vol.1 ナンデ?
書こう!ユニットテスト vol.1 ナンデ?
PHP foreachでの参照渡しに潜む罠
PHP foreachでの参照渡しに潜む罠
Cocproxy
Cocproxy
Kürzlich hochgeladen
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
業務で生成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...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
Kürzlich hochgeladen
(8)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
業務で生成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...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
書こう!正規表現 vol.4 肯定/否定 先読み/戻り読み
1.
書こう!正規表現 vol.4 肯定/否定 先読み/戻り読み
2.
検索しよう!
3.
'Java'で検索
4.
'Java'で検索 -> 'JavaScript'にもヒットする
5.
'Java'で検索 -> 'JavaScript'にもヒットする '餓狼伝'で検索 -> '餓狼伝説'にもヒットする
6.
'Java'で検索 -> 'JavaScript'にもヒットする '餓狼伝'で検索 -> '餓狼伝説'にもヒットする 'ケガニ'で検索 ->
'ヘイケガニ'にもヒットする
7.
'Java'で検索 -> 'JavaScript'にもヒットする '餓狼伝'で検索 -> '餓狼伝説'にもヒットする 'ケガニ'で検索 ->
'ヘイケガニ'にもヒットする 'リア王'で検索 -> '古アッシリア王国'にもヒットする
8.
こういう時こそ正規表現だ!
9.
正規表現は「否定」が不得手 文字クラスの^は一見それっぽいが 否定(文字が存在しない)ではなく あくまで肯定(文字が存在する)ことを扱っている
10.
正規表現は「否定」が不得手 文字クラスの^は一見それっぽいが 否定(文字が存在しない)ではなく あくまで肯定(文字が存在する)ことを扱っている Java[^S] JavaScript マッチしない
11.
正規表現は「否定」が不得手 文字クラスの^は一見それっぽいが 否定(文字が存在しない)ではなく あくまで肯定(文字が存在する)ことを扱っている Java[^S] JavaScript マッチしない Java マッチしない
12.
正規表現は「否定」が不得手 文字クラスの^は一見それっぽいが 否定(文字が存在しない)ではなく あくまで肯定(文字が存在する)ことを扱っている Java[^S] JavaScript マッチしない Java マッチしない Java8
マッチする
13.
そこで否定 先読み/戻り読み
14.
注意 以降で扱う機能は標準的な正規表現の機能ではないため、 - 使えるツールが限られる - 文法は処理系ごとに異なる可能性がある
15.
注意 ここではPCRE(Perl Compatible Regular
Expressions) などで採用されている、一般的な文法を紹介する PCREを利用できるツール例 Perl grep (-P) Apache PHP (preg_*)
16.
注意 PCREではないが今回は同じ文法でいけるツール例 Java Python Ruby JavaScript(先読みのみ)
17.
注意 PCREではないが今回は同じ文法でいけるツール例 Java Python Ruby JavaScript(先読みのみ) 文法が異なるツール例 Vim (:help @=)
18.
否定先読み (?!) Java(?![sS]cript) [sS]criptが後続しないJavaにマッチする JavaScript マッチしない Java
マッチする Java8 マッチする
19.
否定戻り読み (?<!) (?<!Java)[sS]cript Javaが先行しない[sS]criptにマッチする JavaScript マッチしない Script
マッチする JScript マッチする
20.
もちろん肯定もある
21.
肯定先読み (?=) Java(?=[sS]cript) [sS]criptが後続するJavaにマッチする JavaScript マッチする Java
マッチしない Java8 マッチしない
22.
肯定戻り読み (?<=) (?<=Java)[sS]cript Javaが先行する[sS]criptにマッチする JavaScript マッチする Script
マッチしない JScript マッチしない
23.
ちなみに肯定は割と代用可能 s/Java(?=[sS]cript)/J = s/Java([sS]cript)/J1 通常のキャプチャーで代用できることが多い
24.
どんどん ケガニや餓狼伝を検索しよう!
Jetzt herunterladen