SlideShare ist ein Scribd-Unternehmen logo
1 von 92
Downloaden Sie, um offline zu lesen
はじめての正規表現
今回、勉強会を
開催するにあたり
次のような
事前アンケートを
取りました
「テキスト処理をしている中で、
手作業でやるのが面倒な事例を
教えてください。
例題としてとりあげるので、
メールかSkypeで受け付けます。」
まずは、
そのアンケートについて
一通ずつ紹介します
では、気を取り直して
基本事項の確認
記号の意味を
理解しましょう
.(ピリオド)
任意の一文字(改行以外)を表す
これ
*(アスタリスク)
直前の文字を0回以上繰り返す
これ
+
.*(ピリオド&アスタリスク)
任意の一文字を0回以上繰り返す
これがワイルドカード文字の
*(アスタリスク)に相当します
ワイルドカードの『*』
=(イコール)
正規表現の『.*』
あといくつか覚えれば
大体おk
¥n(改行)
¥t(タブ)
^(行頭)
$(行末)
(A¦B)(AまたはB)
習うより慣れろ!
行頭に「> 」の引用符を
挿入したい
HTMLメールに対して
テキストメールで返信する時など
引用符(> )が欲しくなる時があります
行頭に引用符を挿入したい
そんな時に使えます
検索する文字列
『^』
置換する文字列
『> 』
半角空白
番組の途中ですが、お知らせです
秀丸エディタにある
正規表現機能の使い方を
ご紹介します
メニューバーの「検索」→「置換」を
クリックします
正規表現のチェックボックスを
オンにします
「初めてだから怖い・・・」という方は
痴漢の前に確認しておきましょう
話を元に戻します
検索する文字列
『^』
置換する文字列
『> 』
半角空白
解説
行頭(^)を
引用符(> )に置換したということ
行末の不要な空白を
除去したい
Excelなどのファイルから
文字列をコピーした時
行末に不要な空白があることがあります
行末の不要な空白を除去したい
そんな時に使えます
検索する文字列
『 $』
置換する文字列
『』
半角空白
解説
行末($)直前の空白を
「何もなし」に置換したということ
行末に<br />を
挿入したい
HTMLでは改行を<br />と表します
原稿の行末に<br />を挿入したい
そんな時に使えます
検索する文字列
『$』
置換する文字列
『<br />』
解説
行末($)を
<br />に置換したということ
バラバラになっている
表記ゆれを統一したい
複数人がライティング作業をする時など
表記ルールを決めてない限り
表記ゆれが絶対おこります
表記ゆれを統一したい
そんな時に使えます
検索する文字列
『(ウェブ¦ウエブ)』
置換する文字列
『Web』
解説
ウェブまたは、ウエブを
Webに統一したということ
行頭の
不要な空白やタブを
除去したい
人からもらったHTMLファイルなど
「インデントのタイミングが気持ち悪い」
「タブと空白入り交じってやがる!」
など、イラっとすることがありますね
すべてのインデントをリセットしたい
そんな時に使えます
検索する文字列
『^( ¦ ¦¥t)*』
置換する文字列
『』
解説
行頭(^)の
半角空白、または全角空白、またはタブ(¥t)が
いくつ出てきたとしても(*)
「何もなし」に置換したということ
延々続く文字列を
30文字で折り返したい
メールを送る時なんかに
30字で改行すると見やすくなりますね
書き終わってから30字に強制改行したい
そんな時に使えます
検索する文字列
『(..............................)』
置換する文字列
『¥1¥n』ピリオド30個
解説
解説の前に、
今使った
新しい概念の説明です
検索する文字列
『(..............................)』
置換する文字列
『¥1¥n』
検索する文字列
『(..............................)』
この検索する文字列のように、
カッコでグループ化した文字は
置換する文字列
『¥1¥n』
後から、¥1という表記で
呼び出すことができます
置換する文字列
『¥1¥n』
この置換する文字列で言う¥1は
『..............................』
と同じ意味になります
つまり、
置換する文字列
『¥1¥n』
は
『..............................¥n』
とあらわしていることになります
検索する文字列
『(...............)(...............)』
カッコのグループが2つあれば
ピリオド15個
置換する文字列
『¥1¥2¥n』
後から、¥1と¥2という表記で
別々に呼び出すことができます
解説に戻ります
検索する文字列
『(..............................)』
置換する文字列
『¥1¥n』
任意の文字(.)が30個続いたら、
改行(¥n)を挟むということ
もうちょっと簡潔な表現で
検索する文字列
『(.{30})』
置換する文字列
『¥1¥n』
と表すことも可能です
<meta>や<img>を
<meta />や<img />に
変換したい
HTMLからXHTMLに移行する時
空要素の末尾に「 /」が必要です
意外に多くてめんどくさい
空要素の末尾すべてに「 /」を挿入したい
そんな時に使えます
検索する文字列
『(<(meta¦link¦br¦img¦hr¦
input).*?)>』
置換する文字列
『¥1 />』
よく使う空要素のみ抜粋
解説
解説の前に、
今使った
新しい概念の説明です
説明のために
シンプルな記述に変更します
検索する文字列
『(<img.*?)>』
置換する文字列
『¥1 />』
検索する文字列
『(<img.*?)>』
?が今回のポイントです
検索する文字列
『(<img.*?)>』
この?がないとどうなるかというと
<p><img src= example.jpg
alt= いぐざんぽー ></p>
外側に別の要素があると
赤字の範囲がマッチ対象になります
<p><img src= example.jpg
alt= いぐざんぽー ></p>
本当はここまでで止めてほしい
検索する文字列
『(<img.*?)>』
?を使うと最短距離で
マッチしてくれます
『(<img.*)>』
?がなければ最長距離の「>」まで
<p><img src= example.jpg
alt= いぐざんぽー ></p>
『(<img.*?)>』
?があれば最短距離の「>」まで
<p><img src= example.jpg
alt= いぐざんぽー ></p>
というように
マッチ対象が変わります
解説に戻ります
検索する文字列
『(<(meta¦link¦br¦img¦hr¦
input).*?)>』
置換する文字列
『¥1 />』
よく使う空要素のみ抜粋
「<」があって、
metaまたは、linkまたは・・・があって
任意の文字がいくつかあって(.*)
最短距離の「>」までを
<なんとか />にするということ
相対パスを絶対パスに
変更したい
相対パスより絶対パスの方が
SEOに効果があるという噂がありますね
相対パスを絶対パスに変更したい
そんな時に使えます
検索する文字列
『(<a href=")』
置換する文字列
『¥1http://www.example.com/』
最後に
にわか正規表現は危険なので
慣れないうちは
用法・容量を守って
正しくお使いください
がんばって
習得しましょう!
お疲れ様でした!

Weitere ähnliche Inhalte

Andere mochten auch

Rowing: London Tideway River Thames navigation & steering for coxswains
Rowing: London Tideway River Thames navigation & steering for coxswainsRowing: London Tideway River Thames navigation & steering for coxswains
Rowing: London Tideway River Thames navigation & steering for coxswainsRebecca Caroe
 
Daniela presentation Amsterdam 2012
Daniela presentation Amsterdam 2012Daniela presentation Amsterdam 2012
Daniela presentation Amsterdam 2012CLIA UK & Ireland
 
marketing strategy
marketing strategymarketing strategy
marketing strategyImran Ayaz
 
Cruise & RM - Carla Bento
Cruise & RM - Carla BentoCruise & RM - Carla Bento
Cruise & RM - Carla BentoFlatio
 
アクセス数を3倍に改善したSEO成功事例セミナー
アクセス数を3倍に改善したSEO成功事例セミナーアクセス数を3倍に改善したSEO成功事例セミナー
アクセス数を3倍に改善したSEO成功事例セミナーナイル株式会社
 
高大連携授業20140730
高大連携授業20140730高大連携授業20140730
高大連携授業20140730義広 河野
 

Andere mochten auch (10)

Rowing: London Tideway River Thames navigation & steering for coxswains
Rowing: London Tideway River Thames navigation & steering for coxswainsRowing: London Tideway River Thames navigation & steering for coxswains
Rowing: London Tideway River Thames navigation & steering for coxswains
 
7 27localnet
7 27localnet7 27localnet
7 27localnet
 
Daniela presentation Amsterdam 2012
Daniela presentation Amsterdam 2012Daniela presentation Amsterdam 2012
Daniela presentation Amsterdam 2012
 
Future
FutureFuture
Future
 
Boat party
Boat partyBoat party
Boat party
 
marketing strategy
marketing strategymarketing strategy
marketing strategy
 
Cruise & RM - Carla Bento
Cruise & RM - Carla BentoCruise & RM - Carla Bento
Cruise & RM - Carla Bento
 
First condicional
First condicionalFirst condicional
First condicional
 
アクセス数を3倍に改善したSEO成功事例セミナー
アクセス数を3倍に改善したSEO成功事例セミナーアクセス数を3倍に改善したSEO成功事例セミナー
アクセス数を3倍に改善したSEO成功事例セミナー
 
高大連携授業20140730
高大連携授業20140730高大連携授業20140730
高大連携授業20140730
 

Mehr von taiju higashi

一兵卒の New Normal Agile
一兵卒の New Normal Agile一兵卒の New Normal Agile
一兵卒の New Normal Agiletaiju higashi
 
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014taiju higashi
 
MTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little giantMTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little gianttaiju higashi
 
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprintやすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprinttaiju higashi
 
LESS楽しいれす(^q^)
LESS楽しいれす(^q^) LESS楽しいれす(^q^)
LESS楽しいれす(^q^) taiju higashi
 

Mehr von taiju higashi (8)

一兵卒の New Normal Agile
一兵卒の New Normal Agile一兵卒の New Normal Agile
一兵卒の New Normal Agile
 
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
 
MTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little giantMTDDC 2013 LT | Hello, my little giant
MTDDC 2013 LT | Hello, my little giant
 
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprintやすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
 
LESS楽しいれす(^q^)
LESS楽しいれす(^q^) LESS楽しいれす(^q^)
LESS楽しいれす(^q^)
 
Sassられ指南
Sassられ指南Sassられ指南
Sassられ指南
 
JavaScriptとLisp
JavaScriptとLispJavaScriptとLisp
JavaScriptとLisp
 
Learning jQuery
Learning jQueryLearning jQuery
Learning jQuery
 

Learning regular expression