読者です 読者をやめる 読者になる 読者になる

ocamllexで利用できる正規表現(3.08.4)

OCaml

http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html

#とasが何気に便利。特にasは多用してる。Lexing.lexemeとか書かなくなって幸せ*1

'文字'
OCamlと同じ文字定数。「文字」に表される1文字にマッチ。
_
(アンダースコア。)任意の1文字にマッチ。
eof
lexerに与えられた入力の終端にマッチ。
Note: インタラクティブな端末入力からend-of-file以降に文字を入力できるシステムがあります。ocamllexは、そのようなeofの後の入力を仮定する正規表現を正しく処理できません。
"文字列"
OCamlと同じ文字列定数。「文字列」に表される文字列にマッチ。
[ 文字セット ]
文字セットに含まれる任意の1文字にマッチ。
文字セットとして有効なのは
1.文字定数 'c'
2.文字の範囲 'c1' - 'c2'
3.連結で表現される文字の輪集合 'c1' 'c2' ... 'cn'
[ ^ 文字セット ]
文字セットに含まれない任意の1文字にマッチ。
正規表現1 # 正規表現2
(文字集合の差)
正規表現1と正規表現2は、文字セットでなくてはいけない([...]か文字定数かアンダースコア)。二つの文字セットの差にマッチする。
regexp *
0回以上の繰り返し
regexp +
1回以上の繰り返し
regexp ?
オプション
regexp1 | regexp2
regexp1かregexp2
regexp1 regexp2
連結
( regexp )
グループ化
ident
識別子。
regexp as ident
正規表現にマッチした文字列をidentに束縛。

*1:Lexing.lexme(eが抜けてる)とよく書いてしまって悔しい思いをしていたので