我目前正在编写一个正则表达式来匹配这样的字符串:
( expr ) | id | num
term * factor | factor
expr
我希望正则表达式匹配每个 ' | 之间出现的每个字符集 ',但也匹配单独的表达式,例如:
expr
我目前有这个,但我做错了消极的前瞻,我不确定如何继续。
((.*) \|) (.*)$
Ps 我不太喜欢在这种情况下使用 .* ,但我想不出另一种匹配方式,因为 ' | 之间的字符 's 可以是单词字符、数字或介于两者之间的任何内容。
编辑:
我希望输出匹配看起来像这样:
正则表达式在第 1 行运行,输出:
3 matches - ( expor ), id, num
正则表达式在第 2 行运行:
2 matches - term * factor, factor
正则表达式在第 3 行运行:
1 match - expr