lex 的正则表达式
我正在使用 Lex 和 Yacc 开发一个从 MathML 到 Latex 的简单转换器。 在包含正则表达式规则的 lex 文件中,我为算术运算符 [-+*=/] 定义了一个规则。 我想扩展,以便它能够识别正负 (+-) 和不可见时间 ('&InvisibleTimes'),但我不熟悉正则表达式,我需要一些帮助。
I am developing a simple translator from MathML to Latex, using Lex and Yacc. In my lex file containing the regex rules I have one defined for arithmetic operators [-+*=/]. I want to extended so that it would recognize plus-minus (+-) and invisible times ('&InvisibleTimes'), but I'm unfamiliar with regex and I need some help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
像这样的东西会起作用吗?
Would something like this work?
试试这个:
请注意,您需要转义
+-
中的+
,因为它是字符类之外的运算符。 您可以使用反斜杠(就像我在这里所做的那样)或使用双引号来完成此操作。 (双引号语法非常不寻常 - 大多数其他正则表达式实现仅使用反斜杠进行转义,因此我倾向于使用反斜杠,因为它使正则表达式更加“常规”。)Try this:
Note that you need to escape the
+
in+-
because it's an operator outside of character classes. You can do this with backslash (as I've done here) or with double quotes. (The double-quote syntax is pretty unusual -- most other regex implementations only use backslash for escaping, so I'd be inclined to use backslashes as it makes the regex more "conventional".)我对 MathML 不太熟悉,所以我有与你相反的问题。 正如其他人所说,您可以在一个正则表达式中完成所有这些操作,如下所示:
但是,如果您想要与其中每一个相关联的不同操作,则需要这样做:
I'm not very familiar with MathML, so I have the opposite problem of you. As others have said, you can do this all in one regex, like this:
However, if you want to have different actions associated with each of these, you need to do it like this: