狠狠撸

狠狠撸Share a Scribd company logo
正規表現の先読み
について
Kazuhiro?NISHIYAMA
Ruby/Rails勉強会@関??60th
2014/03/29
目的
????????????
はなぜマッチしないのか?
????????の部分が先読み
foo?と?bar?の両?を含む?字列
にマッチすることを期待する?
正規表現の先読みとは?
????????????
??????????????
??????????
???????
http://docs.ruby-lang.org/
ja/2.1.0/doc/
spec=2fregexp.html
簡単に?うと
アンカーの?種で汎用的なもの
アンカーとは?
アンカーは幅0の?字列にマッチす
るメタ?字列
???頭にマッチ
???末にマッチ
????字列の先頭にマッチ
????字列の末尾にマッチ
つまり
幅を持たない
gsub?などで????に?らない
後ろに続くパターンとマッチ開
始位置が同じ
使用例?数字3桁区切り
???????????????
???????????????????????????
?????????????????????????????
https://github.com/rails/rails/
blob/4-0-stable/activesupport/
lib/active?support/
number?helper.rb#L299
(number?to?delimited)
デモ
https://gist.github.com/
znz/9835956#?le-
regexp-201403-rb

More Related Content

Viewers also liked (16)

Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
MarsZ Chen
?
Sublime Text 2 Tips & Tricks
Sublime Text 2 Tips & TricksSublime Text 2 Tips & Tricks
Sublime Text 2 Tips & Tricks
Rhys Wynne
?
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門
Wen-Tien Chang
?
Ruby 程式語言入門導覽
Ruby 程式語言入門導覽Ruby 程式語言入門導覽
Ruby 程式語言入門導覽
Wen-Tien Chang
?
Ruby 程式語言簡介
Ruby 程式語言簡介Ruby 程式語言簡介
Ruby 程式語言簡介
Wen-Tien Chang
?
nadoka さんの m17n 対応のベストプラクティス
nadoka さんの m17n 対応のベストプラクティスnadoka さんの m17n 対応のベストプラクティス
nadoka さんの m17n 対応のベストプラクティス
Kazuhiro Nishiyama
?
hubot-slack v4移行時のハマりどころ #hubot_chatops
hubot-slack v4移行時のハマりどころ #hubot_chatopshubot-slack v4移行時のハマりどころ #hubot_chatops
hubot-slack v4移行時のハマりどころ #hubot_chatops
knjcode
?
lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話
Kazuhiro Nishiyama
?
Ruby on Rails为什么这么红?
Ruby on Rails为什么这么红?Ruby on Rails为什么这么红?
Ruby on Rails为什么这么红?
Nathan Chen
?
Cognitive APIs and Conversational Interfaces
Cognitive APIs and Conversational InterfacesCognitive APIs and Conversational Interfaces
Cognitive APIs and Conversational Interfaces
Pavel Veller
?
Python webinar 2nd july
Python webinar 2nd julyPython webinar 2nd july
Python webinar 2nd july
Vineet Chaturvedi
?
程式设计首日封
程式设计首日封程式设计首日封
程式设计首日封
政斌 楊
?
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
?
那些 Functional Programming 教我的事
那些 Functional Programming 教我的事那些 Functional Programming 教我的事
那些 Functional Programming 教我的事
Wen-Tien Chang
?
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルリクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
Recruit Technologies
?
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Recruit Technologies
?
Ruby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for MacRuby on Rails 開發環境建置 for Mac
Ruby on Rails 開發環境建置 for Mac
MarsZ Chen
?
Sublime Text 2 Tips & Tricks
Sublime Text 2 Tips & TricksSublime Text 2 Tips & Tricks
Sublime Text 2 Tips & Tricks
Rhys Wynne
?
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門
Wen-Tien Chang
?
Ruby 程式語言入門導覽
Ruby 程式語言入門導覽Ruby 程式語言入門導覽
Ruby 程式語言入門導覽
Wen-Tien Chang
?
nadoka さんの m17n 対応のベストプラクティス
nadoka さんの m17n 対応のベストプラクティスnadoka さんの m17n 対応のベストプラクティス
nadoka さんの m17n 対応のベストプラクティス
Kazuhiro Nishiyama
?
hubot-slack v4移行時のハマりどころ #hubot_chatops
hubot-slack v4移行時のハマりどころ #hubot_chatopshubot-slack v4移行時のハマりどころ #hubot_chatops
hubot-slack v4移行時のハマりどころ #hubot_chatops
knjcode
?
lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話lilo.linux.or.jp を wheezy から jessie にあげた話
lilo.linux.or.jp を wheezy から jessie にあげた話
Kazuhiro Nishiyama
?
Ruby on Rails为什么这么红?
Ruby on Rails为什么这么红?Ruby on Rails为什么这么红?
Ruby on Rails为什么这么红?
Nathan Chen
?
Cognitive APIs and Conversational Interfaces
Cognitive APIs and Conversational InterfacesCognitive APIs and Conversational Interfaces
Cognitive APIs and Conversational Interfaces
Pavel Veller
?
程式设计首日封
程式设计首日封程式设计首日封
程式设计首日封
政斌 楊
?
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
?
那些 Functional Programming 教我的事
那些 Functional Programming 教我的事那些 Functional Programming 教我的事
那些 Functional Programming 教我的事
Wen-Tien Chang
?
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアルリクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
Recruit Technologies
?
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
Recruit Technologies
?

More from Kazuhiro Nishiyama (20)

Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05
Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05
Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05
Kazuhiro Nishiyama
?
devise-two-factor gem を 4.x から 5.x に上げた話
devise-two-factor gem を 4.x から 5.x に上げた話devise-two-factor gem を 4.x から 5.x に上げた話
devise-two-factor gem を 4.x から 5.x に上げた話
Kazuhiro Nishiyama
?
docs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えた
docs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えたdocs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えた
docs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えた
Kazuhiro Nishiyama
?
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Kazuhiro Nishiyama
?
lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げたlilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げた
Kazuhiro Nishiyama
?
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
Kazuhiro Nishiyama
?
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Kazuhiro Nishiyama
?
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdffukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
Kazuhiro Nishiyama
?
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdfrubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdf
Kazuhiro Nishiyama
?
辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた
辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた
辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた
Kazuhiro Nishiyama
?
systemd 再入門
systemd 再入門systemd 再入門
systemd 再入門
Kazuhiro Nishiyama
?
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
?
濒颈惫别诲辞辞谤天気础笔滨终了対応
濒颈惫别诲辞辞谤天気础笔滨终了対応濒颈惫别诲辞辞谤天気础笔滨终了対応
濒颈惫别诲辞辞谤天気础笔滨终了対応
Kazuhiro Nishiyama
?
Wireguard 実践入門
Wireguard 実践入門Wireguard 実践入門
Wireguard 実践入門
Kazuhiro Nishiyama
?
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考えるworkflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
Kazuhiro Nishiyama
?
あまり知られていない搁耻产测の便利机能
あまり知られていない搁耻产测の便利机能あまり知られていない搁耻产测の便利机能
あまり知られていない搁耻产测の便利机能
Kazuhiro Nishiyama
?
顿辞肠办别谤のオフィシャル谤耻产测イメージとは?
顿辞肠办别谤のオフィシャル谤耻产测イメージとは?顿辞肠办别谤のオフィシャル谤耻产测イメージとは?
顿辞肠办别谤のオフィシャル谤耻产测イメージとは?
Kazuhiro Nishiyama
?
チャットボットのススメ
チャットボットのススメチャットボットのススメ
チャットボットのススメ
Kazuhiro Nishiyama
?
Dokku の紹介
Dokku の紹介Dokku の紹介
Dokku の紹介
Kazuhiro Nishiyama
?
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
Kazuhiro Nishiyama
?
Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05
Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05
Rubyの日本語リファレンスマニュアルの現在と未来 (松江Ruby会議11) 2024-10-05
Kazuhiro Nishiyama
?
devise-two-factor gem を 4.x から 5.x に上げた話
devise-two-factor gem を 4.x から 5.x に上げた話devise-two-factor gem を 4.x から 5.x に上げた話
devise-two-factor gem を 4.x から 5.x に上げた話
Kazuhiro Nishiyama
?
docs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えた
docs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えたdocs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えた
docs.ruby-lang.org/ja/ の生成方法を (GitHub Actions に)変えた
Kazuhiro Nishiyama
?
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Kazuhiro Nishiyama
?
lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げたlilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げた
Kazuhiro Nishiyama
?
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
Kazuhiro Nishiyama
?
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Kazuhiro Nishiyama
?
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdffukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
Kazuhiro Nishiyama
?
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdfrubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdf
Kazuhiro Nishiyama
?
辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた
辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた
辩别尘耻の谤颈蝉肠惫64に顿别产颈补苍を入れてみた
Kazuhiro Nishiyama
?
濒颈惫别诲辞辞谤天気础笔滨终了対応
濒颈惫别诲辞辞谤天気础笔滨终了対応濒颈惫别诲辞辞谤天気础笔滨终了対応
濒颈惫别诲辞辞谤天気础笔滨终了対応
Kazuhiro Nishiyama
?
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考えるworkflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
Kazuhiro Nishiyama
?
あまり知られていない搁耻产测の便利机能
あまり知られていない搁耻产测の便利机能あまり知られていない搁耻产测の便利机能
あまり知られていない搁耻产测の便利机能
Kazuhiro Nishiyama
?
顿辞肠办别谤のオフィシャル谤耻产测イメージとは?
顿辞肠办别谤のオフィシャル谤耻产测イメージとは?顿辞肠办别谤のオフィシャル谤耻产测イメージとは?
顿辞肠办别谤のオフィシャル谤耻产测イメージとは?
Kazuhiro Nishiyama
?
チャットボットのススメ
チャットボットのススメチャットボットのススメ
チャットボットのススメ
Kazuhiro Nishiyama
?
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
Kazuhiro Nishiyama
?