独自のキャラクタークラス構築

独自のキャラクタークラス構築

スクリプトで独自の文字クラスを構成し、それを修正(および使用)したいと思います。たとえば、次のようになります。

  1. [:myclass:]含むa, *,\n (改行文字で)そして[WHITESPACE]
  2. [:myclass:]fromにすべての文字を追加したいです[:alnum:]
  3. pキャラクターとクラス全体を削除したいと思います。[:upper:][:myclass:]

好ましい解決策はスクリプト言語に依存しない。ご希望の方はご利用くださいbash


ボーナス質問:これをシステム全体にどのように保存できますか?起動するたびに[:myclass:]使用できる必要があります。

答え1

文字クラスのリストがCライブラリ(GNU libc、functionなどbuild_charclass)にハードコードされているかどうかが心配です。posix/regcomp.c)。これを拡張する唯一の方法は、Cライブラリを再コンパイルすることです。

ロケール定義では、各既存のクラスの内容をカスタマイズできます。

ほとんどの場合、正規表現を文字列で書くだけで十分です。

myclass='a*[:alnum:][:space:]'
regexp="[$myclass]"

この方法では、カテゴリから文字を引くことはできません。]またはを追加する場合は、言語正規表現で文字クラスの構文を尊重する必要が-あります。\

関連情報