> > ▼[HLP000006.html]
> > 正規表現の違いについて(別途確認します.)
続いて bregonig.dll について。
▼Bregexp.dll との非互換点
・\w は2バイト文字も含む。
何度も書いていますが、\w は [A-Za-z0-9_] に加え、2バイト文字も含みます。
これに応じて、\W, \b, \B の動作も変更になります。
・[ ] の中に [ を書くときは必ずエスケープが必要。
文字集合の中で文字集合や積演算が使えるようになる代わりに、
[ そのものを書くときは必ず \[ と書かなければならなくなりました。
・\c\ の動作が異なる。
Bregexp.dll では、\c\ は Ctrl+\ を意味していますが、bregonig.dll では、
\c の次の \ はエスケープとして解釈されます。Ctrl+\ を指定するには \c\\
とする必要があります。(Perl の仕様と異なるため、変更の可能性があります。)
・置換で \nnn の動作が少し異なる。
Perl の動作に近づけてあります。
▼機能拡張点1
bregonig.dllで検索に使える機能拡張点には以下のものがあります。
▽エスケープシーケンス
\x{HHHH} 拡張十六進数表現
\z 文字列末尾
\p{property-name} キャラクタプロパティ
\p{^property-name} キャラクタプロパティ(否定)
\P{property-name} キャラクタプロパティ(否定)
\k<name>, \k'name' 名前指定後方参照
\k<name+n>, \k<name-n> ネストレベル付き後方参照
\k'name+n', \k'name-n' ネストレベル付き後方参照
\g<name>, \g'name' 名前指定部分式呼出し
\g<n>, \g'n' 番号指定部分式呼出し
▽文字集合
[ ] の中に以下のものが指定可能です。
[...] 文字集合内文字集合
..&&.. 積演算
POSIXブラケット ([:xxxxx:], 否定 [:^xxxxx:])
▽拡張式集合
(?imsx-imsx) 孤立オプション(オプションの否定が可能になった。)
(imsx-imsx:式) 式オプション
(?<=式) 戻り読み
(?<!式) 否定戻り読み
(?>式) 原子的式集合
(?<name>式), (?'name'式) 名前付き捕獲式集合
▽量指定子
bregonig.dll Ver.2.00 からは、強欲な量指定子が使えるようになります。
?+, *+, ++, {n,m}+, {n,}+, {n}+
▼機能拡張点2
bregonig.dllで置換に使える機能拡張点には以下のものがあります。
\x{HHHH} 拡張十六進数表現
${n} (安全な)番号指定参照
$+ 最後にマッチした部分文字列
$+{name}, $-{name}[n] 名前指定参照(Perl 5.10 互換、推奨)
\k<name>, \k'name' 名前指定参照(鬼車準拠)
${name} 名前指定参照(独自拡張、暫定仕様のため非推奨)