如何解决仅当某些特殊字符前面带有转义字符时才允许使用
我想为一类字符串构造一个regular expression (in the style of lex,with a more OCaml-like syntax),其中允许 4个字符label
,[
,]
,#
仅当它们前面带有转义字符'
。
以下是一些有效的示例:
-
'
,'#Data
,abc'#Headers
,abc'#Totals'[efg
,123'#Totals']efg
,abc
以下是一些无效的示例:
-
123
,#Data
,abc#Headers
,abc#Totals[efg
,123#Totals]efg
希望定义很清楚。首先,有人知道如何构造这样的正则表达式吗?其次,有人知道如何构造ocamllex可以接受的regular expression (in the style of lex,with a more OCaml-like syntax)吗?
解决方法
除了一些示例外,您不会说被接受的字符串看起来很像。只是为了具体起见,假设允许使用小写字母和数字,并且仅在'
之前允许使用4个特殊字符。
然后,用一组36个单字符字符串和4个两个字符字符串的Kleene闭包来描述。
看起来像这样:
(['a' - 'z' '0' - '9'] | '\'' ['\'' '#' '[' ']'])*
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。