More Related Content
PDF
Prometheus at Preferred Networks PDF
PPTX
オンライン物理バックアップの排他モードと非排他モードについて ~PostgreSQLバージョン15対応版~(第34回PostgreSQLアンカンファレンス... PDF
普通のRailsアプリをdockerで本番運用する知見 PDF
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料) PDF
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料) PDF
What's hot
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み) PDF
パッケージングを支える技術 pyconjp2016 PPTX
緊急Ques - コードのメトリクスに基づくリファクタリング戦略 PDF
PDF
データ基盤に関わる問い合わせ対応を仕組みで解決する PDF
今秋リリース予定のPostgreSQL11を徹底解説 PDF
Apache Drill を利用した実データの分析 PDF
sslcompressionの設定方法および性能測定結果 PDF
PDF
【de:code 2020】 Power Platform いまさら聞けないモデル駆動型アプリケーション PDF
PostgreSQLの運用・監視にまつわるエトセトラ PDF
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発 PDF
[C33] 24時間365日「本当に」止まらないデータベースシステムの導入 ~AlwaysOn+Qシステムで完全無停止運用~ by Nobuyuki Sa... PDF
” AWS ” だけじゃない! ” GCP ” の オートスケール機能 PPTX
Selenium×PostgreSQL15×Grafanaで思い出を保存&分析するプロジェクト(第35回PostgreSQLアンカンファレンス@オンライン... PDF
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料) PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~ PDF
[B22] PostgresPlus Advanced Server の Oracle Database 互換機能検証 by Noriyoshi Shinoda PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料) PDF
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版] Viewers also liked
PPTX
PDF
PPTX
PDF
アプリのテストを書かなければならないと分かっているけども、書けていない人たちへ PPTX
PPTX
PDF
PDF
PPTX
PPTX
PDF
PDF
PDF
見やすいプレゼン資料の作り方 - リニューアル増量版 PDF
しょぼいプレゼンをパワポのせいにするな! by @jessedee PDF
ビジネスマン必見!キレイな提案書を作るためのデザインの基礎知識 PDF
PDF
【プレゼン】見やすいプレゼン資料の作り方【初心者用】 PPT
PDF
PDF
SINAP TALK Vol.04「プレゼンテーションについて」鷹野雅弘 Similar to 正規表現勉強会
PDF
PDF
Write good parser in perl ODP
PPT
PDF
PDF
PDF
PDF
ODP
PDF
More from zaru sakuraba
PDF
WebAssembly と Rust の入口の向かいにある道路のベンチに腰掛けるレベルのさわってみた感想を共有 PDF
PDF
CarrierWaveにちょっと互換あるGCP Storage対応クラス PDF
パフォーマンス計測Ciサービスを作って得た知見を共有したい PDF
スクラム導入に向けて:スクラムは救世主となるのか? PDF
PDF
PPTX
社内ネットワーク改善の過程で分かった物理ゆえの闇と脆弱性そしてネットワークの基礎入門 PDF
Service workerとwebプッシュ通知 PPTX
Recently uploaded
PDF
2025/12/12 AutoDevNinjaピッチ資料 - 大人な男のAuto Dev環境 PDF
krsk_aws_re-growth_aws_devops_agent_20251211 PPTX
君をむしばむこの力で_最終発表-1-Monthon2025最終発表用資料-.pptx PDF
ソフトウェアエンジニアがクルマのコアを創る!? モビリティの価値を最大化するソフトウェア開発の最前線【DENSO Tech Night 第一夜】 PDF
音楽アーティスト探索体験に特化した音楽ディスカバリーWebサービス「DigLoop」|Created byヨハク技研 PDF
ソフトとハードの二刀流で実現する先進安全・自動運転のアルゴリズム開発【DENSO Tech Night 第二夜】 ー高精度な画像解析 / AI推論モデル ... 正規表現勉強会
- 1.
- 2.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
/)
///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノil゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
.
*
+
?
改行を除くすべての文字
0回以上の繰り返し
1回以上の繰り返し
0または1回or最小マッチ
- 20.
- 21.
[ ]
{}
( )
|
文字の集合
量指定子
グループ
または
- 22.
[a-z] aからz
[a-zA-Z]aからz + AからZ
[0-9] 0から9
[ac] aとc
[^ac] aとcを含まない
(abc) abc文字列
(ab|cd) abもしくはcd
- 23.
- 24.
- 25.
/i
/m
/u
オプション
大文字小文字区別しない
.が改行にもマッチ
文字コードUTF-8
- 26.
/abc/i =~ "ABC"
=> 0
"abnc".scan(/.+/)
=> ["ab", "c"]
"abnc".scan(/.+/m)
=> ["abnc"]
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
function validate_email($email, $strict= true) {
$dot_string = $strict ?
'(?:[A-Za-z0-9!#$%&*+=?^_`{|}~'/-]|(?<!.|A).(?!.|@))' :
'(?:[A-Za-z0-9!#$%&*+=?^_`{|}~'/.-])'
;
$quoted_string = '(?:|"|?[A-Za-z0-9!#$%&*+=?^_`{|}~()<>[]:;@,. '/-])';
$ipv4_part = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
$ipv6_part = '(?:[A-fa-f0-9]{1,4})';
$fqdn_part = '(?:[A-Za-z](?:[A-Za-z0-9-]{0,61}?[A-Za-z0-9])?)';
$ipv4 = "(?:(?:{$ipv4_part}.){3}{$ipv4_part})";
$ipv6 = '(?:' .
"(?:(?:{$ipv6_part}:){7}(?:{$ipv6_part}|:))" . '|' .
"(?:(?:{$ipv6_part}:){6}(?::{$ipv6_part}|:{$ipv4}|:))" . '|' .
"(?:(?:{$ipv6_part}:){5}(?:(?::{$ipv6_part}){1,2}|:{$ipv4}|:))" . '|' .
"(?:(?:{$ipv6_part}:){4}(?:(?::{$ipv6_part}){1,3}|(?::{$ipv6_part})?:{$ipv4}|:))" . '|' .
"(?:(?:{$ipv6_part}:){3}(?:(?::{$ipv6_part}){1,4}|(?::{$ipv6_part}){0,2}:{$ipv4}|:))" . '|' .
"(?:(?:{$ipv6_part}:){2}(?:(?::{$ipv6_part}){1,5}|(?::{$ipv6_part}){0,3}:{$ipv4}|:))" . '|' .
"(?:(?:{$ipv6_part}:){1}(?:(?::{$ipv6_part}){1,6}|(?::{$ipv6_part}){0,4}:{$ipv4}|:))" . '|' .
"(?::(?:(?::{$ipv6_part}){1,7}|(?::{$ipv6_part}){0,5}:{$ipv4}|:))" .
')';
$fqdn = "(?:(?:{$fqdn_part}.)+?{$fqdn_part})";
$local = "({$dot_string}++|("){$quoted_string}++")";
$domain = "({$fqdn}|[{$ipv4}]|[{$ipv6}]|[{$fqdn}])";
$pattern = "/A{$local}@{$domain}z/";
return preg_match($pattern, $email, $matches) &&
(
!empty($matches[2]) && !isset($matches[1][66]) && !isset($matches[0][256]) ||
!isset($matches[1][64]) && !isset($matches[0][254])
)
;
}
参照:http://qiita.com/mpyw/items/257eabe0b43b1e02e6f7
- 38.
____
/:::::::::: u\
/:::::::::⌒ 三. ⌒\
/:::::::::: ( ○)三(○)\
|::::::::::::::::⌒(__人__)⌒ | _________
\:::::::::: ` ⌒´ ,/. | | |
ノ::::::::::u \ | | |
. /:::::::::::::::: u | | |
|::::::::::::: l u | | |
ヽ::::::: -一ー_~、⌒)^),-、|_|_______|
ヽ::::::::___,ノγ⌒ヽ)二二二| | |
- 39.
- 40.
- 41.
- 42.
- 43.
HTTP URI
"http://hoge.com/piyo"=~ %r{https?:(//(([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-,:;=])*@)?([(([0-9a-f]{1,4}:){6}([0-9a-f]{1,4}:[0-9a-f]{1,4}|(d|[1-9]d|1d{2}|2[0-
4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]))|::([0-9a-f]{1,4}:){5}([0-9a-f]{1,4}:[0-
9a-f]{1,4}|(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]))|([0-
9a-f]{1,4})?::([0-9a-f]{1,4}:){4}([0-9a-f]{1,4}:[0-9a-f]{1,4}|(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-
4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]))|(([0-9a-f]{1,4}:)?[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3}([0-9a-f]{1,4}:[0-9a-f]{1,4}|(d|[1-9]d|1d{2}|2[0-
4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]))|(([0-9a-f]{1,4}:){0,2}[0-9a-f]{
1,4})?::([0-9a-f]{1,4}:){2}([0-9a-f]{1,4}:[0-9a-f]{1,4}|(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-
5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]))|(([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:([0-9a-f]{1,4}:[0-9a-f]{1,4}|(d|[1-9]d|1d{2}|2[0-4]d|25[0-
5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]))|(([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::([0-9a-f]{
1,4}:[0-9a-f]{1,4}|(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-
4]d|25[0-5]))|(([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::|v[0-9a-f]+.[!$&-.0-;=_a-z~]+)]|(d|[1-9]d|1d{2}|2[0-
4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5]).(d|[1-9]d|1d{2}|2[0-4]d|25[0-5])|([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-
,;=])*)(:d*)?(/([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-,:;=@])*)*|/(([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-,:;=@])+(/([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-
,:;=@])*)*)?|([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-,:;=@])+(/([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-,:;=@])*)*)?(?([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-
,/:;=?@])*)?(#([-.0-9_a-z~]|%[0-9a-f][0-9a-f]|[!$&-,/:;=?@])*)?}
- 44.
____
/ \
/:::::::─三三─\
/::::::::: ( ○)三(○)\
| 、" ゙)(__人__)ル゚。゚___________
\ ゝ'゚≦ 三゚| | |
__/ 。≧ 三= | | |
| | / , -ァ, ≧= .| | |
| | / / .イレ,、> | | |
| | | ⌒ ーnnn ,≦`Vヾヾ≧ |_|___________|
 ̄\__、("二)。゚/。・イハ、\、l二二l二二_|_|__|_
- 45.
- 46.
- 47.
- 48.
for (1..100) {
s/(?<=[05])$/Buzz/;
s/^([0369]|[147]([0369]|[147][0369]*[258])*
([258]|[147][0369]*[147])|
[258]([0369]|[258][0369]*[147])*
([147]|[258][0369]*[258]))+Buzz$/FizzBuzz/;
s/^([0369]|[147]([0369]|[147][0369]*[258])*
([258]|[147][0369]*[147])|
[258]([0369]|[258][0369]*[147])*
([147]|[258][0369]*[258]))+$/Fizz/;
s/d+(?=D)//;
print "$_n";
}
- 49.
for (1..100) {
s/(?<=[05])$/Buzz/;
s/^([0369]|[147]([0369]|[147][0369]*[258])*
([258]|[147][0369]*[147])|
[258]([0369]|[258][0369]*[147])*
([147]|[258][0369]*[258]))+Buzz$/FizzBuzz/;
s/^([0369]|[147]([0369]|[147][0369]*[258])*
([258]|[147][0369]*[147])|
[258]([0369]|[258][0369]*[147])*
([147]|[258][0369]*[258]))+$/Fizz/;
s/d+(?=D)//;
print "$_n";
}
5の倍数の時、Buzzを追加
Buzzがあって、
かつ3の倍数の時残ったFizzBuzz 3の倍数をFizzに
最後に必要ない数値を削除
- 50.
- 51.
- 52.