なでしこ□蔼まとめに提る

泣塑胳プログラミング咐胳≈なでしこ∽で赖惮山附を蝗う眷圭のメモ。

赖惮山附とは

赖惮山附(Regular Expression)とは、矢机误(テキスト)が泼年の掘凤と圭っているか(マッチ)を冉们する、その冉年掘凤(パタ〖ン)の山淡恕こと。票じようなテクニックに、ファイル叹などを回年するワイルドカ〖ドというのがあるけれど、それの光怠墙惹。

たとえば、四络な矢今から排厦戎规だけを艰り叫したい、なんてときに蝗える。

掘凤办米だけじゃなく、浮瑚や弥垂にも蝗う。ソフトウェア倡券などで升弓く网脱されており、ソ〖スコ〖ドの面でも蝗われるし、テキストエディタやテキスト浮瑚などのプログラミングツ〖ルでも何脱されている。

たぶん、プログラミングの答塑として妄豺しておく涩妥がある。

なでしこの赖惮山附掐嚏

ここでは泣塑胳プログラミング咐胳≈なでしこ∽での、赖惮山附のサンプルコ〖ドを绩します。なでしこの赖惮山附は、Perl高垂になっているとか。

帽姐なマッチ

毋矢1 = ≈长は弓いな。络きいな。∽
毋矢1を≈长∽で赖惮山附マッチ。
それを山绩する。	◆ => 长
毋矢1 = ≈长は弓いな。络きいな。∽
もし、(毋矢1を≈长∽で赖惮山附マッチ)ならば
	≈マッチしました∽を山绩する。
般えば
	≈マッチしません∽を山绩する。◆ => マッチしました
毋矢1 = ≈长は弓いな。络きいな。∽
もし、(毋矢1を≈鄂∽で赖惮山附マッチ)ならば
	≈マッチしました∽を山绩する。
般えば
	≈マッチしません∽を山绩する。◆ => マッチしません

と、これだけだと矢机误浮瑚と票じになってしまう。

词帽なパタ〖ン

そこで、办米させたい矢机误のパタ〖ンを回年する。たとえば、扦罢の排厦戎规(xxx-xxxx-xxxx)とか、凸守戎规とか。

排厦戎规の眷圭 
\d{2,4}-\d{2,4}-\d{4}
凸守戎规(7峰)の眷圭
\d{3}-\d{4}

赖惮山附にマッチする乖だけを山绩する

办戎よく蝗うパタ〖ンかも。ここでは、黎片が≈#∽の乖を艰り叫す。

#赖惮山附のテスト

テスト矢♂≈あああああ
#いいいいい
ううううう∽

パタ〖ン♂≈\A#∽

テスト矢を瓤牲
	滦据をパタ〖ンで赖惮山附マッチ
	もし、それが鄂でなければ、
		滦据を山绩

これを悸乖すると、肌のようになる

#いいいいい

URLを浮叫する

リンク♂≈((mailto|http|https):[\x21-\x7E]*)∽

テスト1♂≈ここにhttp://nadesi.com/と今いておきます。∽
テスト1をリンクで赖惮山附マッチ
それを山绩  #http://nadesi.com/

テスト2♂≈海刨はhttps://nadesi.com/と今いておきます。∽
テスト2をリンクで赖惮山附マッチ
それを山绩  #https://nadesi.com/

テスト3♂≈ここにmailto:foo@nadesi.comと今いておきます。∽
テスト3をリンクで赖惮山附マッチ
それを山绩  #mailto:foo@nadesi.com

URLをリンクに恃垂

#URL恃垂6

リンクタグ♂≈\[\[.+?\]\]∽
リンク♂≈((mailto|http|https):[\x21-\x7E]*)∽

塑矢♂≈ここはhttp://nadesi.com/aaaとhttp://nadesi.com/?aaaです。
海刨はhttps://nadesi.com/と今いておきます。
ここにmailto:foo@nadesi.comと今いておきます。∽

藐叫矢♂塑矢からリンクで赖惮山附链藐叫2
恃垂稿矢♂塑矢のリンクを≈\x01$1\x01∽へ赖惮山附弥垂 

藐叫矢を瓤牲
	リンク矢♂それ
	リンク恃垂矢♂リンク矢をリンク恃垂
	恃垂稿矢♂恃垂稿矢の≈{リンク矢}∽をリンク恃垂矢へ帽弥垂
# 	恃垂稿矢♂恃垂稿矢の≈\x01{リンク矢}\x01∽をリンク恃垂矢へ赖惮山附帽弥垂
#	赖惮山附のメタ矢机≈?∽がURLに崔まれる眷圭でも、リンクに恃垂
#	赖惮山附での\x01は、帽弥垂でに滦炳する

恃垂稿矢を山绩


↑リンク恃垂(恃垂矢を)

	恃垂矢を≈(http|https):[\x21-\x7E]*∽で赖惮山附マッチ
	もし、それが鄂でなければ、
		リンク山附♂≈<a href="{それ}">{それ}</a>∽
		リンク山附で提る

	恃垂矢を≈(mailto):[\x21-\x7E]*∽で赖惮山附マッチ
	もし、それが鄂でなければ、
		リンク山附♂≈<a href="{それ}">{それ}</a>∽
		リンク山附で提る

//滦据矢からパタ〖ンをすべて藐叫
//マッチした眶が1改の眷圭は提猛を手す
//http://www26.atwiki.jp/isoroku_be/pages/44.html
↑赖惮山附链藐叫2(滦据矢からパタ〖ンで)
	赖惮山附饯峻灰は≈gmk∽
//マッチした眶を纷换
	滦据矢2♂滦据矢
	滦据矢2♂滦据矢2の≈(↑)∽を≈ⅷ∽に赖惮山附弥垂
	滦据矢2♂滦据矢2のパタ〖ンを≈↑∽に赖惮山附弥垂
	マッチ眶♂滦据矢2で≈↑∽の叫附搀眶
//藐叫
	提猛とは矢机误
	提猛は滦据矢の(≈(∽&パタ〖ン&≈)∽)を≈\x01$1\x02∽で赖惮山附弥垂
	提猛は提猛の≈\x02[^\x01]*∽を≈\x02∽に赖惮山附弥垂
	提猛は提猛の≈[^\x02]*\x01∽を鄂に赖惮山附弥垂
//
	マッチ眶で掘凤尸呆
		≈0∽ならば
			それは鄂
			提る
		≈1∽ならば
			提猛の≈\x02∽を鄂に赖惮山附弥垂して提る
		般えば
			提猛を≈\x02∽で赖惮山附惰磊って提る

恃垂冯蔡は

ここは<a href="http://nadesi.com/aaa">http://nadesi.com/aaa</a>と<a href="http://nadesi.com/?aaa">http://nadesi.com/?aaa</a>です。
海刨は<a href="https://nadesi.com/">https://nadesi.com/</a>と今いておきます。
ここに<a href="mailto:foo@nadesi.com">mailto:foo@nadesi.com</a>と今いておきます。

回年したWebペ〖ジを赖惮山附で故り哈む

笆布のソ〖スコ〖ドをなでしこで悸乖。努碰なURLを回年して、パタ〖ンをいろいろ庶り哈んでみてください。

#回年したWebペ〖ジを赖惮山附で故り哈む
#2010-01-01 ver.002 

ⅷⅷⅷ姥み腾デザイナ:ここからⅷ
ⅷ 笆布はデザインデ〖タです。
ⅷ コメントを猴近しないようにしてください。
ⅷ ---
ⅷ熟聪とはフォ〖ム##栏喇
熟聪は≈メインフォ〖ム∽
そのクライアントW=640#眶猛
そのクライアントH=448#眶猛
そのタイトル=≈なでしこ∽#矢机误
ⅷ ---
URLエディタとはエディタ##栏喇
そのX=8#眶猛
そのY=16#眶猛
そのW=416#眶猛
そのH=32#眶猛
そのテキスト=≈http://headlines.yahoo.co.jp/hl∽#矢机误
ⅷ ---
パタ〖ンエディタとはエディタ##栏喇
そのX=8#眶猛
そのY=64#眶猛
そのW=416#眶猛
そのH=32#眶猛
そのテキスト=≈.*∽#矢机误
ⅷ ---
冯蔡メモとはメモ##栏喇
そのX=8#眶猛
そのY=104#眶猛
そのW=488#眶猛
そのH=328#眶猛
そのテキスト=≈∽#矢机误
そのスクロ〖ルバ〖=≈侥∽#矢机误
ⅷ ---
URL构糠ボタンとはボタン##栏喇
そのX=432#眶猛
そのY=64#眶猛
そのW=64#眶猛
そのH=32#眶猛
そのテキスト=≈OK∽#矢机误
そのクリックした箕は×URL构糠ボタン__クリックした箕#イベント
ⅷ ---
ラベル1とはラベル##栏喇
そのX=8#眶猛
そのY=0#眶猛
そのW=224#眶猛
そのH=16#眶猛
そのテキスト=≈粕み哈むWebペ〖ジ(URL)∽#矢机误
ⅷ ---
ラベル2とはラベル##栏喇
そのX=8#眶猛
そのY=48#眶猛
そのW=224#眶猛
そのH=16#眶猛
そのテキスト=≈赖惮山附のパタ〖ン∽#矢机误
ⅷⅷⅷ姥み腾デザイナ:ここまでⅷ

ペ〖ジとは、矢机误。

↑URL构糠ボタン__クリックした箕
  URL构糠する。
  赖惮山附ヲ澄年する。

↑URL构糠()
  ペ〖ジ♂URLエディタからHTTPデ〖タ艰评
  矢机コ〖ド回年♂ペ〖ジを≈charset=(.*)∽で赖惮山附マッチ
  それを≈(Sift JIS|EUC|euc-jp|JIS|UTF-8)∽で赖惮山附マッチ
  ペ〖ジ♂ペ〖ジをそれから≈sjis∽へ矢机コ〖ド恃垂

↑赖惮山附ヲ澄年()
  エラ〖雌浑
    ペ〖ジの0からパタ〖ンエディタを山赖惮山附ピックアップ
  エラ〖ならば
    それは≈赖惮山附のエラ〖∽
  冯蔡メモ♂それ。
  熟聪は≈赖惮山附でWeb故り哈み-{冯蔡メモの妥燎眶}凤∽

搀眶回年{}は、∝≠でパタ〖ンを回年する

なでしこでは、{}を矢机误柒での恃眶の鸥倡に蝗います。そのために、赖惮山附の搀眶回年{n,m}と寒票されてしまいます。赖惮山附で搀眶回年{n,m}などを回年する眷圭は、パタ〖ンを∝≠で回年します。∝≠を蝗うと、テキスト柒の恃眶が鸥倡されません。

テスト矢♂≈aaa∽
≈あああ{テスト矢}いいい∽を山绩 # => あああaaaいいい
∝あああ{テスト矢}いいい≠を山绩 # => あああ{テスト矢}いいい

淡规办枉

パタ〖ンを淡揭する狠に网脱する淡规の办枉です。BREGEXP.DLLを网脱しています。

メタ矢机

\     肌のメタ矢机をクォ〖トする(艰り久す)
^     乖の呵介にマッチする。矢机クラス面の^は容年(ex. [^a])
[]    矢机クラス ハイフンは认跋を山すex.[0-9] 0から9までの眶机1矢机
.     (猖乖笆嘲の) すべての矢机にマッチする
$     乖の姜わりにマッチする
|     联买
()    グル〖プ步。  カッコの面咳は淡脖される。$1で弥垂できる。
\w   帽胳の菇喇矢机 (毖眶机と "_") にマッチ
\W    帽胳の菇喇矢机笆嘲にマッチ
\s    鄂球矢机にマッチ
\S    鄂球矢机笆嘲にマッチ
\d    眶机にマッチ
\D    眶机笆嘲にマッチ
\b    帽胳の董肠にマッチ
\B    帽胳の董肠笆嘲にマッチ
\A    矢机误の呵介にのみマッチ
\Z    矢机误の呵稿にのみマッチ
\t    タブ
\n    猖乖
\r    牲耽
\f    猖ペ〖ジ
\a    アラ〖ム (ベル)
\e    エスケ〖プ
\033  8 渴眶で山した矢机
\x1b  16 渴眶で山した矢机
\c[   コントロ〖ル矢机
*      0 搀笆惧にマッチ
+      1 搀笆惧にマッチ
?      1 搀または 0 搀にマッチ
{n}    ちょうど n 搀にマッチ
{n,}   n 搀笆惧にマッチ
{n,m}  n 搀笆惧 m 搀笆布にマッチ

# {}は、テキスト鸥倡とバッティングするので、テキストを∝≠で跋むこと

饯峻灰

k 矢机を泣塑胳(シフトJIS)として胺う。Perlにはない
m 矢机误を剩眶乖として胺う。メタ矢机$の借妄冯蔡に逼读を第ぼす
g 弥垂¨グロ〖バルな弥垂
c 恃垂¨Searchlistを输礁圭にする
d 恃垂¨みつかったが弥垂されなかった矢机を猴近する
s 恃垂¨弥垂された矢机が脚なったとき暗教する

徊雇リンク

徊雇获瘟を腊妄してみました。

なでしこ淡祸

リファレンス

赖惮山附 办忍


  トップ   汗尸 バックアップ リロ〖ド   办枉 帽胳浮瑚 呵姜构糠   ヘルプ   呵姜构糠のRSS
Last-modified: 2012-08-16 (腾) 18:27:14 (4264d)