JaneStyle (正規表現用)

『小マクロ集』のおまけ の "JaneStyle (正規表現用)" を拡張しました。

対象ファイル
  • ReplaceStr.txt
  • ImageViewURLReplace.dat
  • URLExec.dat
  • command.dat

これらJane系ブラウザの設定ファイル用の定数・変数と bregonig.dll の正規表現のタグやメタ文字を強調表示できます。


設定ファイルの拡張子は .TXT と .DAT なので、『小マクロ集』 のおまけの「編集モードの自動選択」マクロを「ファイルを開いたとき」のイベントに割りあてておくと便利です。


共通部分は多いので、互換性のないタグを補遺・整理すれば これらの 正規表現 強調用の構文ファイル としても転用できるとおもいます。


  • 色番号は適当に割りふっていますので、おこのみで再割りふりしてください。
  • 「構文」タブの「行コメント」を使用していないので、(ある程度)コメント行内のタグも着色できます(コメントアウト用のプリフィクスは文字色 8 に集めてあります)。
  • 名前つき集合と名前指定参照では "name" のパターンを "[\w\d]+" としています(アンダースコア以外の半角記号は対象外)。必要に応じて拡張してください。
  • 正規表現検索用の構文 "/pattern/options" には対応していません(対象ファイル内にはURL文字列が多く、誤爆させない書き方がおもいつかなかった)。


『小マクロ集』のおまけ からの変更
  • Jane系ブラウザの定数・変数タグの補遺
  • 正規表現タグの補遺
  • うしろが " ? " でない開きカッコ " ( " を強調できるようにした
先読み・戻り読みのある構文から一般的な捕獲式集合を数えやすくなります。
  • 正規表現でグループ化していた各種タグを個別に切り分けた
文字色の変更を自由にできます。
頻出するメタ文字 " . " , " * " , " \ " など(有効にするとかえって読みづらくなる)除外したいものがあるばあい、編集モードのプロパティで「正規表現」のチェックを OFF にするだけで無効化できます。

コード編集

各行の説明文字列や末尾のコメントアウトした行をふくめてコピーしても差しつかえありません (コメントアウトした行は「編集モード」のインポートでは無視されるようです)。

※ この構文ファイルをインポートすると、Mery.iniは 約180行・17kB 増量されます。 インポートする必要のない定義は、行を削除してください。

Jane系設定ファイル用の項目には下線をつけてあります。 正規表現の強調表示用の項目だけが必要なばあい、下線つきの行を削除してください。

以下、ソースコード

#TagBegin=
#TagEnd=
#CommentBegin1=
#CommentEnd1=
#LineComment1=
#CommentBegin2=
#CommentEnd2=
#LineComment2=
#SpecialSyntax=None
#ScriptBegin=
#ScriptEnd=
#QuoteSingle=False
#QuoteDouble=False
#QuoteContinue=False
#EscapeCharacter=

#Word Color=0, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=True
改行タグ |<br>
罫線タグ |<hr>
文字コードの ¥x |\\x(?=[0-9a-fA-F]{1,2})
文字コードの ¥x |\\x(?=\{?[0-9a-fA-F]{1,6}\}?)
非捕獲式集合の ?: |(?<=\()\?:

#Word Color=0, WholeWord=False, RightSide=False, MatchCase=false, InsideTag=False, RegEx=True
wscript
cscript
genVwCache\.wsf
gethtmldat\.js

#Word Color=1, WholeWord=False, RightSide=False, MatchCase=False, InsideTag=False, RegEx=True
POSIXブラケット |\[:^^?alnum:\]| 英数字 
POSIXブラケット |\[:^^?alpha:\]| 英字 
POSIXブラケット |\[:^^?ascii:\]| ASCII文字 0x00-0x7F 
POSIXブラケット |\[:^^?blank:\]| \t, 0x20 (半角スペース) 
POSIXブラケット |\[:^^?cntrl:\]| 制御文字 0x00-0x1F, 0x7F 
POSIXブラケット |\[:^^?digit:\]| 0 - 9
POSIXブラケット |\[:^^?graph:\]| 0x21-0x7E, 多バイト文字 
POSIXブラケット |\[:^^?lower:\]| 小文字の英字 a - z 
POSIXブラケット |\[:^^?print:\]| 0x20-0x7E, 多バイト文字 
POSIXブラケット |\[:^^?punct:\]| 半角句読点文字 !"#$%&'()*+,-./:;<=>?@[¥]^_`{|}~ 
POSIXブラケット |\[:^^?space:\]| \t, \n, \v, \f, \r, 0x20 (半角スペース) 
POSIXブラケット |\[:^^?upper:\]| 大文字の英字 A - Z 
POSIXブラケット |\[:^^?xdigit:\]| 0 - 9, a - f, A - F 
POSIXブラケット |\[:^^?word:\] 英数字, "_", 多バイト文字 
文字プロパティ |(?<=\\p\{)^^?Alnum(?=\})
文字プロパティ |(?<=\\p\{)^^?Alpha(?=\})
文字プロパティ |(?<=\\p\{)^^?ASCII(?=\})
文字プロパティ |(?<=\\p\{)^^?Blank(?=\})
文字プロパティ |(?<=\\p\{)^^?Cntrl(?=\})
文字プロパティ |(?<=\\p\{)^^?Digit(?=\})
文字プロパティ |(?<=\\p\{)^^?Graph(?=\})
文字プロパティ |(?<=\\p\{)^^?Lower(?=\})
文字プロパティ |(?<=\\p\{)^^?Print(?=\})
文字プロパティ |(?<=\\p\{)^^?Punct(?=\})
文字プロパティ |(?<=\\p\{)^^?Space(?=\})
文字プロパティ |(?<=\\p\{)^^?Upper(?=\})
文字プロパティ |(?<=\\p\{)^^?XDigit(?=\})
文字プロパティ |(?<=\\p\{)^^?Word(?=\})
文字プロパティ ひらがな |(?<=\\p\{)^^?Hiragana(?=\})
文字プロパティ カタカナ |(?<=\\p\{)^^?Katakana(?=\})
文字プロパティ 漢字 一-龠 |(?<=\\p\{)^^?Han(?=\})
文字プロパティ ラテン文字 |(?<=\\p\{)^^?Latin(?=\})
文字プロパティ ギリシャ文字 |(?<=\\p\{)^^?Greek(?=\})
文字プロパティ キリル文字 |(?<=\\p\{)^^?Cyrillic(?=\})

#Word Color=1, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=True
HTMLタグ内 属性値 |(?<=\w=)[^^\s>]+?(?=>)

#Word Color=2, WholeWord=False, RightSide=False, MatchCase=False, InsideTag=False, RegEx=True
積演算 && |\&\&
捕獲式集合のカッコ |(?<!\\)\((?!\?)
名前付き捕獲式集合 ?<name> |(?<=\()\?<[\w\d]+>
名前付き捕獲式集合 ?'name' |(?<=\()\?'[\w\d]+'
名前付き捕獲式集合 ?P<name> |(?<=\()\?P<[\w\d]+>

#Word Color=2, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=False
後方参照 ¥k |\\k
部分式参照 ¥g |\\g

#Word Color=2, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=True
変数タグ|\$EXTRACT[0-9]?(?!MODE)
変数:全体 $& |\$&
戻り読み ¥K |\\K
後方参照 ¥k<±n・name> |\\k<[-+]?[\w\d]+>
後方参照 ¥k'±n・name' |\\k'[-+]?[\w\d]+'
照合開始錨 ¥G |\\G(?=\(|\))
部分式参照 ¥gn |\\g-?\d+
部分式参照 ¥g{n・name} |\\g\{[-\w\d]+\}
名前/番号指定参照 ¥g<±n・name> |\\g<[-+]?[\w\d]+>
名前/番号指定参照 ¥g'±n・name' |\\g'[-+]?[\w\d]+'
名前指定参照 ${name} |\$\{[\w\d]+\}
名前指定参照 (?P=name) |\(\?P=[\w\d]+\)
名前指定部分式参照 (?P>name) |\(\?P>[\w\d]+\)
再帰参照 (?0) (?R) |\(\?[0R]\)
部分式参照 (?&name) |\(\?&[\w\d]+\)
番号指定参照 (?±n) |\(\?[-+]?\d+\)
番号指定参照 $±{name} |\$[-+]?\{[\w\d]+\}\d*
番号指定参照 ${n} |\$\{[0-9]{1,2}\}
番号指定参照 $n |\$(?!0)[0-9]{1,2}(?!\d+)
番号指定参照 ¥n |\\(?!0)[0-9]{1,2}(?!\d+)
部分文字列 最後 $+ |\$\+
名前+番号指定参照 $- |\$-
条件式 ?(n) |(?<=\()\?\(\d+(?:[!<>= ]+\d+)?\)
条件式 ?(<name>) |(?<=\()\?\(<[\w\d]+>\)
条件式 ?('name') |(?<=\()\?\('[\w\d]+'\)
単語境界錨 ¥b |\\b
非単語境界錨 ¥B |\\B
文字列先頭錨 ¥A |\\A
文字列末尾錨 ¥Z |\\Z| または文字列末尾の改行の直前
文字列末尾錨 ¥z |\\z
正規表現演算子の抑制開始タグ ¥Q |\\Q
正規表現演算子の抑制終了タグ ¥E |\\E
文字プロパティの ¥p ¥P |\\[pP](?=\{)

#Word Color=3, WholeWord=False, RightSide=False, MatchCase=False, InsideTag=False, RegEx=True
(?<=【TAB】)<[0-5]?>
<TAB>
\[TAB\]
\{TAB\}
【TAB】
[TAB]
Mery.exe |Mery(?:\.exe)?(?!\\)
Janeのパス |\$BASEPATH
ログのパス |\$LOGPATH

#Word Color=3, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=True
^^<>
^^<ex>
^^<ex2>
^^<rx>
^^<rx2>
正規表現演算子の抑制部分 |(?<=\\Q)(?!\\E).+?(?=\\E)

#Word Color=3, WholeWord=False, RightSide=True, MatchCase=True, InsideTag=False, RegEx=True
行頭の安価 > |^^>+ ?

#Word Color=4, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=True
動作制御タグ |\$BROWSER
動作制御タグ |\$CHOTTO
動作制御タグ |\$LIST
動作制御タグ |\$LOVELY
動作制御タグ |\$VIEW(?!ER)
動作制御タグ |\$VIEWER(?!IMAGE|ITEM|URL)
動作制御タグ |\$EXTRACACHE
動作制御タグ |\$(?:NO)?BREAK
動作制御タグ |\$(?:NO)?EXTCTRL
動作制御タグ |\$VIEWNOIMAGE
動作制御タグ |\$FLASH
動作制御タグ |\$EXACTMODE
対象URL・タイトルの \t<n> |(?<=\t)<[0-5]>(?=[^^\t]+$)
文字参照 |&(?:amp;)*^#?\w+;(^#?\w+;)?

#Word Color=5, WholeWord=False, RightSide=False, MatchCase=False, InsideTag=False, RegEx=True
先読み 否定 ?! |(?<=\()\?!
先読み ?= |(?<=\()\?=
戻り読み ?<= |(?<=\()\?<=
戻り読み 否定 ?<! |(?<=\()\?<!
注釈 ?# |(?<=\()\?^#
非包含オペレータ ?~ |(?<=\()\?~
原子的式集合 ?> |(?<=\()\?>
オプション ?imsxadlu-imsx: |(?<=\()\?[imsxadlu]+-?[imsx]*:?|(?<=\()\?[imsxadlu]*-[imsx]+:?
オプション ?^imsxadlu-imsx: |(?<=\()\?^^[imsxadlu]+-?[imsx]*:?|(?<=\()\?^^[imsxadlu]*-[imsx]+:?
メタ文字 $ |(?<!\\)\$(?![&+\-{\d])
メタ文字 * |(?<!\\)\*
メタ文字 + |(?<!\\)\+
メタ文字 - |(?<!\\)\-
メタ文字 . |(?<!\\)\.
メタ文字 ? |(?<!\\)\?(?![:=!~^#>]|<[=!])
メタ文字 | |(?<!\\)\|

#Word Color=5, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=True
メタ文字 ¥ |(?<!\\)\\(?![bgkpxzABEGKPQZ\d])
変数タグ |\$(?:UTF8|EUC)?TEXT[IUCEX]*
変数タグ |\$LINKE?
変数タグ |\$URL2?
変数タグ |\$TITLE
変数タグ |\$NUMBER
変数タグ |\$BOARDNAME2?
変数タグ |\$BURL2?
変数タグ |\$BBSNAME
変数タグ |\$DATNAME
変数タグ |\$INPUTE?
変数タグ |\$LOCALDAT
変数タグ |\$LOCALIDX
変数タグ |\$BOARDPATH2?
変数タグ |\$VIEWERIMAGE
変数タグ |\$VIEWERITEM
変数タグ |\$VIEWERURL
変数タグ |\$BURL2?
変数タグ |\$FILE
変数タグ |\$COOKIE
変数タグ |\$HOST
置換対象タグ all |\tall(?=\t|$)
置換対象タグ date |\tdate(?=\t|$)
置換対象タグ mail |\tmail(?=\t|$)
置換対象タグ msg |\tmsg(?=\t|$)
置換対象タグ name |\tname(?=\t|$)
置換対象タグ|(?<= |【TAB】|\[TAB\]|<TAB>|\{TAB\}|[TAB])(?:name|mail|date|msg|all)(?=\t|$)

#Word Color=6, WholeWord=False, RightSide=False, MatchCase=True, InsideTag=False, RegEx=True
メタ文字 ^ |\^^
文字参照 偽|[&&][#^#]?[0-9]+[;;]
文字参照 偽|&[#^#]?[0-90-9a-zA-Z]+[;;]

#Word Color=7, WholeWord=False, RightSide=False, MatchCase=False, InsideTag=False, RegEx=True
注釈値 |(?<=\(\?^#)[^^)]+

#Word Color=7, WholeWord=False, RightSide=True, MatchCase=False, InsideTag=False, RegEx=True
コメントアウト 行頭 // |^^//
コメントアウト 行頭  |^^;
コメントアウト 行頭  |^^^#
コメントアウト 行頭  |^^'

#Word Color=7, WholeWord=False, RightSide=True, MatchCase=True, InsideTag=False, RegEx=True
対象URL・タイトルの文字列|(?<=\t<[0-5]>)[^^\t]+(?=$)


# 
# 対象ファイル
# ・ReplaceStr.txt
# ・ImageViewURLReplace.dat
# ・URLExec.dat
# ・command.dat
# 
# bregonig.dll Ver.4.12 のドキュメント http://k-takata.o.oo7.jp/mysoft/bregonig.html に依拠したので、古いバージョンの bregonig.dll や bregexp.dll、鬼車、鬼雲(← Mery) などの正規表現タグとはことなる部分があるかも。
# 
# ※ この構文ファイル上で各定義を直接編集する場合、^# にはエスケープ文字 ^ をつけてください。正規表現のメタ文字のエスケープの要否はご自分で判断してください。 
# 
# 収録しなかった正規表現タグ (文字・文字種の変数など)
# ※ 必要なら行頭の ”# ” を消してお好みのグループへ(必要に応じてメタ文字 \ の先読み否定の文字クラスも書きかえてください)
# 
# \\t| 水平タブ (0x09) 
# \\n| 改行 (0x0A) 
# \\r| 復帰 (0x0D) 
# \\b| 後退空白 (0x08) 文字集合の中でのみ有効。 
# \\f| 改頁 (0x0C) 
# \\a| 鐘 (0x07) 
# \\e| 退避修飾 (0x1B) 
# \\\d{1,3}| 8進数表現 (符号化バイト値(の一部)) 1~3桁 
# \\o\{\d{1,7}\}| 拡張8進数表現 (コードポイント値) 1~6桁、あるいは 1~7桁 (Ver.4 以降) 
# \\cx| 制御文字表現 (コードポイント値) 
# \\w| 単語構成文字 
# \\W| 非単語構成文字 
# \\s| 空白文字 
# \\S| 非空白文字 
# \\d| 10進数字 
# \\D| 非10進数字 
# \\R| 改行文字 (Linebreak) (Ver.3 以降) 改行1つにマッチします。CRLF も1文字としてマッチします。 
# \\X| 拡張書記素クラスタ (eXtended grapheme cluster) (Ver.3 以降、Ver.4 で強化) Unicode の結合文字等を考慮した1文字にマッチします。 
# \[ ... \]| 集合 (文字集合内文字集合) 文字クラス 
# \\l| 次の1文字を小文字にする。(Ver.3 以降) 
# \\u| 次の1文字を大文字にする。(Ver.3 以降) 
# \\L| \E までを小文字にする。(Ver.3 以降) 
# \\U| \E までを大文字にする。(Ver.3 以降) 
# 
# 正規表現検索 / … / の後ろにつけるオプション [imsgxk8audlR] フラグってどう書くのがいいんだろうか? URLに誤爆させない書き方がおもいつかないので対応できません…。
# その他、使い方のわからないものは収録していません。
# 
# ※ 頻出するメタ文字 . * \ など除外したいものがあるなら、「正規表現」のチェックを OFF にするだけで無効化できます。
# ※ 名前つき集合と名前指定参照では name のパターンを [\w\d]+ としています(アンダースコア以外の半角記号は対象外)。必要に応じて拡張してください。
# ※ 色番号は適当に割りふっていますので、おこのみで再割りふりしてください。
# ※「構文」タブの「行コメント」を使用していないので、(ある程度)コメント行内のタグも着色できます。コメントアウト用のプリフィクスは文字色 8 (#Word Color=7) のグループに集めてあります。

メモ・ご意見などはこちらに編集

  • 2018/08/31: ページを新規作成 (sukemaru)
  • 2018/09/01: ソースコード内 #Word Color=7 の 「注釈値 |(?<=\(\?^#)[^^)]+」を RightSide=False に修正 (sukemaru)
  • 2018/09/08: ソースコードの表示形式を変更。 <source>タグなし、下線などの文字修飾を追加 (sukemaru)

スポンサーリンク