window.onload = function() {
dp.SyntaxHighlighter.ClipboardSwf = ‘http://tmh.main.jp/lib/js/dp.SyntaxHighlighter/Scripts/clipboard.swf’;
dp.SyntaxHighlighter.HighlightAll(‘code’);
};
メタ文字
. 改行を除く任意の1文字
* 直前のパターンの0回以上の繰り返し
+ 直前のパターンの1回以上の繰り返し
? 直前のパターンの0回または1回
^ 行頭 $行末
(最小マッチ方式の繰り返し)
*? 直前のパターンの0回以上の繰り返し
+? 直前のパターンの1回以上の繰り返し
?? 直前のパターンが0回または1回現われる
[…] クラス化 囲まれた文字のどれかとマッチ(文字は1文字ずつ分解されて判定)。
[^…] 否定クラス化
(…) パターンのグループ化
w 英単語構成文字 [0-9A-Za-z_]と同義
W 英単語構成文字以外 「[^0-9A-Za-z_]」と同義
s 空白文字 [ tnfr]と同義
S 空白文字以外 [^ tnfr]と同義
d 数字 [0-9]と同義
D 数字以外 [^0-9]と同義
後方参照(Perl)
例1 検索語を「(w+)Editor」、 置換語を「$1Soft」とすると、 ‘Editor’の部分を‘Soft’に置き換えた文字列になる( ‘K2Editor’に対して行えば‘K2Soft’になる)。
例2
FORMULA-1:3000
FORMULA-3:2000
という文字列に対して 「([w-]+):(d+)」で検索すると、 「$1」には ‘FORMULA-1’,‘FORMULA-3’といった文字列が、 「$2」には ‘3000’,‘2000’といった文字列が、入ってくる。
先読み(?=pattern)(Perl)
ファイルのリストから「[^]+(?=.txt)」 で検索を行えば、拡張子がtxtのファイルのファイルタイトルだけを抽出
HTML切り出し
最長一致
/<div class=”section”>(.*)</div><!– section –>/
最短一致
/<div class=”section”>(.*?)</div><!– section –>/
画像リンク
$pattern = “/href=”(https?|ftp)(://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+).(jpg|JPG|jpeg|JPEG|png)/”;
メアド
/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/
[0-9] 半角数字
[A-Z] 半角英大文字
[a-z] 半角英小文字
[0-9] 全角数字
[A-Z] 全角英大文字
[a-z] 全角英小文字
[ぁ-ん] 全角ひらがな
[ァ-ヶ] 全角カタカナ
参考サイト
正規表現サンプル
http://hodade.adam.ne.jp/seiki/
phpサンプル
<?php /////////////////////////////////////////////////////////////////////////////////////////////////*キャッシュ処理*/ // Cache_Liteのプログラムを読み込む require_once 'Cache/Lite.php'; //ライブラリ単体での読み込みも可 //require_once './Lite.php'; // 設定項目 $cacheOptions = array ( 'cacheDir' => 'cache/', // キャッシュが保存される場所 'lifeTime' => 3600, // 指定した秒数はキャッシュを使う、nullにすると無期限 ); $url = 'http://shuugi.in/giseki'; $cacheId = $url; $objCache = new Cache_Lite($cacheOptions); if ($cache = $objCache->get($cacheId)) { $buf = $cache; // キャッシュが見つかったときはここで代入 } else { // キャッシュがなかったとき、lifeTimeより古くなっているときはここで処理 $buf = file_get_contents($url); //$objCache->remove($cacheId);//キャッシュ削除 $objCache->save($buf, $cacheId); // キャッシュとして保存 } ?> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <?php /////////////////////////////////////////////////////////////////////////////////////////////////*データ取得*/ //1.読み込み //$str = file_get_contents("http://weather.yahoo.co.jp/weather/jp/13/4410/13202.html"); $str = $buf; //キャッシュ読み込み $str2 = ereg_replace("r|n|t","",$str);//改行などを除去 //2.正規表現 $pattern = "/<div class="section">(.*)</div><!-- section -->/"; //$pattern = "/<div class="section">(.*?)</div><!-- section -->/";//最短一致 if(@preg_match($pattern,$str2,$match)){ //@でエラー回避 //if(@preg_match_all($pattern,$str2,$match)){ //最短一致で全てを取り出す //置換 $match[0] = str_replace("銘柄情報", "議席獲得情報", $match[0] ); echo ( $match[0]."" ); //preg_match_allで取り出した要素が複数の場合($match[0][1],$match[0][2]・・・)、以下で全て表示させる。 //foreach ($match[0] as $hoge) { // echo $hoge; //} } ?>
改行削除
$str2 = preg_replace(‘/(?:n|r|rn)/’, ”, $str );
改行削除
$value = str_replace(array(“rn”, “r”, “n”), ”, $value);