制作日記

こういうの作った方が、逃げにくいじゃない

サクラエディタの強調キーワード

http://kyoakumugenirc.blog61.fc2.com/blog-entry-2958.html
大分前に、記事にした気がするわ

一応念のため書いとくと、正規表現には色んな方言がある
だから、その他エディタやらとは挙動が異なる場合もある

http://drabs.blog40.fc2.com/blog-entry-759.html

/^\[[S|s]tate\s(.*)\]/k
/^\[[S|s]tate[D|d]ef\s(.*)\]/k
これの問題点
全部大文字とかは引っかからない
statedefなのに、ステート番号書いてなくても引っかかる
先頭にスペース入れたら引っかからない
を解決

/(?<=^|^\s|^\s{2}|^\s{3}|^\s{4}|^\s{5}|^\s{6}|^\s{7}|^\s{8}|^\s{9})\[(?i)statedef\s+-?\d(.*)\]/k
先頭空白の処理がかなり苦しい
誰か良い方法教えて

全角空白が行頭にあっても引っかかるのは欠点かな?
そこは正規表現ライブラリ次第だし、鬼車がそういう仕様みたい
仕様上サクラ標準は全角に引っかからないっぽい、使ってないから知らんけど
鬼車でどうにかしようとすると、\sを[ \t]辺りに差し替える

というか、網掛け、下線の強調を使わないなら、諦めてヒットさせても良い
それなら、↓でサクッと解決するかと
/^\s*\[(?i)statedef\s+-?\d(.*)\]/k

一応解説
[(?i)statedef\s+-?\d(.*)\]
(?i)は大文字小文字区別しない設定ON
だから、statedefは大文字小文字どっちでもヒットする
\s+は空白が1個以上連続
-?は-が0個か1個、-1~-3にも対応する必要があるから
\dが数字1個
(.*)]が行末に最も近い]まで全部
括弧で囲ってる理由は忘れた、多分意味ない

(?=xxx)は戻り読み
検索するけどヒット対象にならない、つまり強調されない
先頭がxxxから始まる特定の文字列を検索したいけど、
後ろの文字列だけヒットさせたい時に使う
xxxの部分は固定長でないと駄目だから、(?=\s*)とか書けない

サクラエディタの正規表現ヘルプ
http://sakura-editor.sourceforge.net/htmlhelp/HLP000089.html
プロフィール

Author:drab
霊夢改変キャラ
「12 3 ! {V} [_]」
公開中
L霊夢でもl_reimuでも好きなように読んでください

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク