微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅当某些特殊字符前面带有转义字符时才允许使用

如何解决仅当某些特殊字符前面带有转义字符时才允许使用

我想为一类字符串构造一个regular expression (in the style of lex,with a more OCaml-like syntax),其中允许 4个字符label[]#仅当它们前面带有转义字符'

以下是一些有效的示例:

  • ''#Dataabc'#Headersabc'#Totals'[efg123'#Totals']efgabc

以下是一些无效的示例:

  • 123#Dataabc#Headersabc#Totals[efg123#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 举报,一经查实,本站将立刻删除。