Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< August 2020 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
ブログパーツ-BLOG PARTS.
Profile
Links
Recommend
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2011.03.24 Thursday
Dreamweaverで正規表現を使うには?

 

WebTechNote」さんブログより
WebTecNote - Dreamweaverの正規表現置換サンプルと解説
http://tenderfeel.xsrv.jp/memo/70/

 

Ctrl+F(コマンド+F)押して表示されるダイアログの右下にある正規表現を使用にチェックを入れるだけです。

検索および置換ダイアログ

テキストを維持したままタグを減らしつつ変更

HTML→XHTMLで一番多い作業がこれだと思う

置換対象:

HTML:
  1. <td width="397"><font size="2">テキスト</font></td>

置換後:

HTML:
  1. <th scope="row">テキスト</th>

検索パターン:<td width="397"><font size="2">(.+)</font></td>
置換パターン:<th scope="row">$1</th>

fontタグに挟まれてる文字列を記憶して、置換で記憶した文字列を変更したタグに出力しています。
記憶と置き換えについては最後の方で説明いれてるのでここでは省略。
ドットとプラスの意味はそれぞれ、

  • ドット→新行 (改行) 以外のすべての単一文字
  • プラス→直前の文字の 1 回以上の繰り返し

なので、『改行以外の文字を何文字あっても記憶』という意味になります。
この場合プラスはアスタリスク*でも構いません。アスタリスクは「直前の文字の 0 回以上の繰り返し」という意味です。

でも実際やってみると「改行以外」なのに、同じ条件のものが複数横並びしてると改行飛び越えてヒットしてしまうことがあります。perlやphpほど厳密ではないのかも。
そんなときは(.*?)→のように、アスタリスクやプラスの後に?をひとつ添えると1つだけマッチするようになります。
?は0 または 1 回マッチ/なるべく少ない回数だけマッチという意味。

検索対象がアルファベットや数字などであれば、ドットではなく¥w*や¥d+と指定した方がスマートです。

  • ¥w→下線を含む、英数字1つ。[A-Za-z0-9_] と同じ
  • ¥d→数字1文字。[0-9] と同じ
  • ¥W→非英数字の1つ。[^A-Za-z0-9_] と同じ
  • ¥s→スペース、タブ、用紙送り、改行を含むホワイトスペース1つ

エスケープシーケンスを複数同時に使う場合は大カッコ[]で挟みます。
大カッコで挟むと「特定範囲の文字をあいまいに指定」することが出来るので、
[¥w¥s]+と書いた場合は、英数字かスペースのどれか、というアバウトさになり
さらにその後+をつけることで、範囲指定したどれかの文字が1回以上繰り返されますよ、という指定になります。

属性の中の数値だけまとめて変更

tdのwidthがページごとに違ってるとかいうトンデモなソースが実際ありました…。
数値の違う属性を一括で同じ数値に置換したい場合などに。

置換対象:

HTML:
  1. <td width="397">テキスト</td><td width="201">テキスト</td>

置換後:

HTML:
  1. <td width="300">テキスト</td><td width="300">テキスト</td>

検索パターン:td width="¥d+"
置換パターン:td width="300"

¥dは数字1文字を表します。[0-9] と同じです。
プラスで『数字のどれか1文字が1回以上繰り返されてる』という指定になります。

widthをheightにするなら…
検索パターン:td width="(¥d+)"
置換パターン:td height="$1"

小カッコで挟んだら記憶。覚えないと損。

属性に単語を追加

クラス名を付け加えるとか。

置換対象:

HTML:
  1. <span class="hoge">テキスト</span>

置換後:

HTML:
  1. <span class="hoge test">テキスト</span>

検索パターン:class="(¥w+)"
置換パターン:class="$1 test"

¥wは下線を含む、英数字 1 つ。[A-Za-z0-9_] と同じ意味。
つまり『英数字1つが1回以上繰り返されてます』ということ。

imgタグをXHTMLの書式にする

ドキュメントタイプ変更で出来るけど一応参考に。

置換対象:

HTML:
  1. <img src="test.gif" alt="test">

置換後:

HTML:
  1. <img src="test.gif" alt="test" />

検索パターン:<img(.*)">
置換パターン:<img$1" />

>の前にあるダブルクォートが重要。
ドットと組み合わせる場合はアスタリスクとプラスどちらでも良い。

hrefのハイフンをアンダーバーにする

パス名変えたいときなんかに。

置換対象:

HTML:
  1. <img src="images/test-img.gif" alt="test">

置換後:

HTML:
  1. <img src="images/test_img.gif" alt="test" />

検索パターン:(¥w*)/(¥w*)-(¥w*).
置換パターン:$1/$2_$3.

(.+)→任意の一文字+1 回以上の繰り返し+中の正規表現パターンを記憶する
アスタリスクは0回以上の繰り返し。
$n→記憶したパターンを出力

$nは、括弧を前から数えて、記憶された括弧の中身を順番に入れるので
(.+)〜(.+)〜(.+) こんな感じで複数検索した場合は
$1〜$2〜$3 で置換出来る。

PHPとかJavaScriptとかが分かるのなら、配列みたいなものだと思えば分かりやすいかもしれない。
(.+)〜(.+)〜(.+) → array('文字列', '文字列', '文字列')
$1〜$2〜$3 → array[0]〜array[1]〜array[2]

Dreamweaberのヘルプにもあるが、()と$は記憶された中身を置換するので
置換で$3〜$2〜$1と指定すると順番変更も出来たりする。

value属性を自動挿入

チェックボックスとかラジオボタンでやると楽。

置換対象:

HTML:
  1. <option>hoge</option>

置換後:

HTML:
  1. <option value="hoge">hoge</option>

検索パターン:<option>(.*)</option>
置換パターン:<option value="$1">$1</option>

電話番号のマッチング

PCREのパターンそのまま使えます。

HTML:
  1. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  2.   <tr>
  3.     <th scope="row">1234-56-7890</th>
  4.     <td>090-1234-5687</td>
  5.   </tr>
  6. </table>

パターン例:¥d{2,4}-¥d{2,4}-¥d{3,4}

※下記2例追加

TBODYの削除

改行を含む空白部分のマッチ例です。

置換対象:

HTML:
  1. </table>
  2.             <TABLE width="691" cellspacing="0" cellpadding="0">
  3.                 <TBODY>
  4.                     <TR>
  5. <!--省略-->
  6.                                     </TR>
  7.                                 </TBODY>
  8.                             </TABLE></TD>
  9.                         <TD rowspan="5"><IMG src="image.gif" alt="" width="15" height="254"></TD>

置換後:

HTML:
  1. </table>
  2.             <TABLE width="691" cellspacing="0" cellpadding="0">
  3.                     <TR>
  4. <!--省略-->
  5.                                     </TR>
  6.                             </TABLE></TD>
  7.                         <TD rowspan="5"><IMG src="image.gif" alt="" width="15" height="254"></TD>

検索パターン:[¥s¥t]+(<TBODY>|</TBODY>)
置換パターン:なし
「大文字と小文字を区別」にチェックをしない。

Dreamweaverの場合、改行を含む空白部分はスペースとタブの連続指定だけでもヒットします。

必要な属性だけ残して他を全て消す

idとclassだけ残したい…というケースのサンプル。

置換対象:

HTML:
  1. <TABLE cellspacing="0" cellpadding="0" width="691" id="main">
  2. <TABLE width="425" cellspacing="0" cellpadding="0">
  3.  <TABLE width="100%" border="0" cellspacing="0">
  4. <TABLE width="725" cellspacing="0" cellpadding="0" class="hoge">
  5. <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">

置換後:

HTML:
  1. <table id="main">
  2. <table class="hoge">

検索パターン:<table(?:(?: (?:cellpadding|cellspacing|width|border)="[¥w¥-_%]+")+( (?:id|class)="[¥w¥-_%]+")*)>
置換パターン:<table$1>
「大文字と小文字を区別」にチェックをしない。

丸カッコの事を正規表現らしく言うとサブパターンと言うんですが、
このサブパターンの先頭カッコの直後にエクスクラメーションとコロン(?:)をつけるとマッチした文字が記憶されなくなることを応用したものです。
最終的にidかclassの属性を示す丸カッコの部分が$1に残ります。
残す属性と消す属性は縦線で区切ればいくつでも指定できます。

補足

上記例だとIDとClassが両方ある場合

マッチする:

HTML:
  1. <TABLE width="725" cellspacing="0" cellpadding="0" class="hoge"  id="main">

マッチしない:

HTML:
  1. <TABLE  id="main" width="725" cellspacing="0" cellpadding="0" class="hoge">

という結果になる。
マッチする例は残す属性が2つ横に並んでいるからアスタリスクの条件に当てはまっているだけなのだけど、
丸カッコは1つずつのパターンしか記憶しないので$1の対象は最後にマッチしたidになる。
1つしか記憶されないのは[^>]*で大雑把にして

<table(?:(?: (?:cellpadding|cellspacing|width|border)="[¥w¥-_%]+")+([^>]*))>

と変更すれば回避できるんだけど、飛び飛びになってたらこれもマッチしないので
残す属性が散らばっているなら削除条件だけにした方が効率が良い。

(?: (?:align|height|width|bgcolor|cellpadding|cellspacing|width|border|background|style)="(?:[¥w¥d¥-_%#:;¥(¥)¥.¥,¥s]+|)")

削除だけなら?:の有無はどちらでもいい。

ネタが出来たらまた追加します。

見つかりませんとか言われる場合

検索エリアのメタ文字をエスケープしてないと検索内容が変わってしまいます。
メタ文字とは、正規表現で使われている特殊記号のことです。
カッコ()や[]大カッコ、中カッコ{}、バックスラッシュ¥、半角のハイフン等を検索にヒットさせる場合は、
そのメタ文字の前に全てバックスラッシュ¥を付ける必要があります。

参考:adobeのlivedoc | PCRE 正規表現構文

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuz                    <div id=
| whaison | - | 10:24 | comments(0) | trackbacks(0) | pookmark |
Comment




whaisonStudyNoteBook をFaceBookで いいね!





Share |









Trackback
URL : トラックバック機能は終了しました。