我想写一个正则表达式规则(对于lex,但一般正则表达式应该没问题),如下所示:
arbitrary-length-string || arbitrary-length-string
字符串可以包含除“||”之外的所有字符符号。它可能包含'|'。
所以,基本上需要一个正则表达式来捕获所有字符串,但“||”。但是,坚持这一步。
有人可以给我一个如何为这样的字符串写正则表达式的提示吗?
答案 0 :(得分:1)
不包含||的字符串可以被认为是由单个字符组成的字符串的集合,然后由垂直条分隔。例如,像
这样的字符串ab|cd|ef|gh
|ab|cd|ef
等。遵循这种模式。这些字符串
假设允许的唯一字符是“a”和“|”,则一个正则表达式为
(A +)(\ | A +)?* \ |
(我正在使用\ |代表|字符,因为它需要被转义)。我想你可以通过用“||”连接那个正则表达式的两个副本来为你的整体需求写一个正则表达式在中间。
希望这有帮助!