REGEXLIBの使い方
先日公開した正規表現ライブラリ(REGEXLIB)の使い方。
■使い方
(1)スロット0〜3のいずれかにこのライブラリを置く。
(2)呼び出し側の先頭に「USE 置いたスロット番号」を書く。
(3)「MATCH(パターン, 検索する文字列)」の形で関数MATCHを呼ぶ。
(4)検索する文字列の中にパターンが見つかれば1、見つからなければ0が戻り値として返る。
■簡易リファレンス
[と]の間にある文字のいずれかにマッチする。
例: [abc] ⇒aまたはbまたはcにマッチ
* 直前の文字の0回以上の繰り返しにマッチする。
例: a* ⇒a, aa, aaa, ...などにマッチ (0回以上であることに注意)
+ 直前の文字の1回以上の繰り返しにマッチする。
例: a+ ⇒a, aa, aaa, ...などにマッチ
. 任意の1文字にマッチする。
例: . ⇒a, b, c, ...などにマッチ
() (と)の間をグループとする。 グループの中は | で節として区切ることができ、その節のいずれかでマッチする。
例: (abc|ef) ⇒abcまたはefにマッチ
^ 行頭にマッチする。
例: ^a ⇒文字列の先頭がaではじまる時にマッチ
$ 行末にマッチする。
例: z$ ⇒文字列の終端がzで終わる時にマッチ
\(バックスラッシュ) 特殊文字 *+.()|^$\ をエスケープする。また、\nは改行文字(CHR$(10))を表す。
例: \\ ⇒\にマッチ
■注意点
・| は()の中でのみ使えます。
・[0-9]や[A-Z]のような表現は使えません。文字を列挙してください。
・()のネストはできません。ただし、()の中でを入れることはできます。
・()が閉じていない時の動作は未定です。
・バックスラッシュは*+.()|^$nとバックスラッシュが続く時だけ機能します。
・\nはCHR$(10)に置き換えられます。
・特殊文字のエスケープのために、ユニコード非文字(U+FDD0〜U+FDEF)を使います。
・力技による実装なので、大量のメモリを消費します。メモリ不足に注意してください。
・速度は期待しないでください。(^^;)
以上