一部の特殊文字は、前にエスケープ文字が付いている場合にのみ許可されます
Aug 18 2020
私が構築したい(OCamlのような構文の詳細と、LEXのスタイルで)正規表現を文字列のクラスのための4つの文字は[
、]
、#
、'
それらはエスケープ文字が先行している場合にのみ許可されます'
。
いくつかの有効な例を次に示します。
'#Data
、abc'#Headers
、abc'#Totals'[efg
、123'#Totals']efg
、abc
、123
無効な例を次に示します。
#Data
、abc#Headers
、abc#Totals[efg
、123#Totals]efg
、'#Totals[efg
定義が明確であることを願っています。まず、そのような正規表現を作成する方法を知っている人はいますか?第二に、ocamllexが受け入れることができるような正規表現(lexのスタイルで、よりOCamlのような構文を使用)を構築する方法を知っている人はいますか?
回答
JeffreyScofield Aug 18 2020 at 08:01
いくつかの例を除いて、受け入れられた文字列がどのように見えるかはわかりません。具体的には、小文字と数字が許可され、4つの特殊文字の前に'
。が付いている場合にのみ許可されるとします。
これは、36個の1文字の文字列と4個の2文字の文字列のセットのクリーネ閉包によって説明されます。
これは次のようになります:
(['a' - 'z' '0' - '9'] | '\'' ['\'' '#' '[' ']'])*