政略結婚じゃないよ。

コンピュータや音楽のことなど

全体表示

[ リスト | 詳細 ]

記事検索
検索

正しくマッチするべきものにマッチしているかを十分に精査する。
この精査が雑だとその先がぐずぐずになる。
間違ってマッチしたものを無理やり正しく加工しようとして
さんざん苦労した挙句、そもそも正しくマッチしていなかったんじゃないか
と気がついてがっかりする。

結局難しくしすぎても破綻する場合があるのでシンプルなものに戻した。
/[^/\\]*(?:(?:\\.|/\])[^/\\]*)*/[gmi]*
キャラクタクラスの最後尾にエスケープなしのスラッシュを書けるようにした。
/[()/]+/
/[/]+/
後読を使うことで除算を正規表現と区別できた。
強調文字列(複数行)の開始文字列を下記のように設定
※行頭にリテラルがあるときに認識できない不具合を修正 (2012/5/16)
修正前 ?<=([^0-9a-z_$)\]]|\<return\>;) *
修正後 ?<=(^|[^0-9a-z_$)\]] *|\<return\> *)
(?<=(^|[^0-9a-z_$)\]] *|\<return\> *))((/[^\\/\[]*((\\.|\[([^\]]|\\.)+\])[^\\/\[]*)*/[gim]*)|("[^\\"]*(\\.[^\\"]*)*")|('[^\\']*(\\.[^\\']*)*'))
大文字と小文字の区別、正規表現:チェック
種類:単一の文字列
表示方法:文字定数

あまりにも長くて難解なのでブロックごとに %1 〜 %5 と番号をつけて説明する。
(%1)((/[%2]*((\\.|%3)[%2]*)*/[gim]*)|("[%4]*(\\.[%4]*)*")|('[%5]*(\\.[%5]*)*'))
      -----------------------------   ------------------   ------------------
      正規表現                         ""内文字列           ''内文字列
%1 正規表現だけマッチさせて除算をマッチしないようにするための後読
?<=(^|[^0-9a-z_$)\]] *|\<return\> *)
本来は正規表現の冒頭にだけ必要
秀丸の正規表現は後読を先頭にしか書けない

%2 正規表現 通常部分
^\\/\[

%3 正規表現 文字クラス部分
\[([^\]]|\\.)+\]
文字クラス内の / で正規表現が終了しないようにするため

%4 ""内文字列 通常部分
^\\"

%5 ''内文字列 通常部分
^\\'

前からずっと欲しかった正規表現のバイブルを遂に購入。
目から鱗が何枚も落ちるよう。

数値のカンマ区切り

正規表現をうまく使って一発でreplaceできることをこちらの記事で知った。
http://www.coppermine.jp/documents/programming/javascript/

引用元をちょっと変更して下記のようにしてみた。
numericString.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
オライリーのフクロウ本欲しいなあ。

.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事