正規表現

特殊文字列
. ^ $ [ ] * + ? | ( )
→メタ文字列

メタ文字列を単なる文字として使う場合は[\]を前に足す
\. \^ \$ \[ \] \* \+ \? \| \( \) \\

□とにかく何でもいい1文字[.]
半角の[.]で とにかくなんでもいい1文字を表現
ex. 私は...が..→私は早起きが苦手

□行の先頭と最後[^$]
行の先頭や最後にのみ存在する文字列を検索したい場合に[^$]
ex. ^ありがとう→ありがとうから始まるもの
  ありがとう$→ありがとうで終わるもの

□同じ文字の繰り返し[* + ?]
同じ文字の繰り返しを表す正規表現は [*]、[+]、[?]の3つ
・[*]:[*]の直前の文字が0個以上連続するか
 ex. おー*い→おい、おーい、おーーーい
・[+]:[+]の直前の文字が1個以上連続するか
 ex. おー+い→おーい、おーーーい
・[?]:[?]の直前の文字が0個か1個だけ存在するか
 ex. Windows?→Window、Windows

□何でもいい文字の連続[.*]
[* + ?]は[.]と併用可
ex. コーヒーが好き.*。→コーヒーが好きです。、コーヒーが好きかもね。
  [.]が[*]であるもの→何でもいい1文字が0個以上連続するもの

□いずれかの文字列[|]
| で区切られた文字列のいずれかの文字列が存在するもの
ex. hoge|piyo→hoge、piyo

□指定した文字のどれか[[]]
[]中のどれか1つに合致するもの
ex. 今日は[晴曇雨]です→今日は晴です
  A[A-Z]C→ABC
  1[0-9]8→108
  A[^A-Z0-9]Z→A−Z
  []の中で^→XX以外→2番目の文字はアルファベットと数字以外の文字

□グループ化[()]
まとめて数文字単位で処理
ex. (じゃ)+ーん→じゃーん、じゃじゃーん
  明日(ぼく|わたし)は帰宅します→明日ぼくは帰宅します、明日わたしは帰宅します


ref:
http://www.mnet.ne.jp/~nakama/

Template Method Pattern

templateは。「文字の形に穴が開いている薄いプラスチック板」のこと。
その穴をペンでなぞれば、手書きでも綺麗な文字が書けるわけ。
ペンなのか、マジックなのか、鉛筆なのか、筆なのか。
仕上がりは違うけど同じ文字が書ける。
templateは、形を決定する枠組みを提供するだけ。

TemplateMethodパターンは、
テンプレートの機能を持つパターン
スーパークラスで処理の枠組みを決め、
サブクラスでその具体的内容を実装する。
スーパークラスでは、
アルゴリズムの流れの中で利用される抽象的メソッドと、
この抽象的なメソッドを利用した処理のアルゴリズムを定義するTemplateMethodを定義する。


ref:
http://www.techscore.com/tech/DesignPattern/TemplateMethod.html

Top

HOME

06 | 2008/07 | 08
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

QR

name:
mail:
title:
body:

N/A