lex 的正则表达式

发布于 2024-07-23 04:48:32 字数 170 浏览 5 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

攀登最高峰 2024-07-30 04:48:32

像这样的东西会起作用吗?

(?:[-+*=/]|\+-|&InvisibleTimes)

Would something like this work?

(?:[-+*=/]|\+-|&InvisibleTimes)
荒芜了季节 2024-07-30 04:48:32

试试这个:

([-+*=/]|\+-|&InvisibleTimes)

请注意,您需要转义 +- 中的 +,因为它是字符类之外的运算符。 您可以使用反斜杠(就像我在这里所做的那样)或使用双引号来完成此操作。 (双引号语法非常不寻常 - 大多数其他正则表达式实现仅使用反斜杠进行转义,因此我倾向于使用反斜杠,因为它使正则表达式更加“常规”。)

Try this:

([-+*=/]|\+-|&InvisibleTimes)

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".)

甜心小果奶 2024-07-30 04:48:32

我对 MathML 不太熟悉,所以我有与你相反的问题。 正如其他人所说,您可以在一个正则表达式中完成所有这些操作,如下所示:

[-+*=/]|\+-|&InvisibleTimes

但是,如果您想要与其中每一个相关联的不同操作,则需要这样做:

[-+*=/]            {/* action 1 here */}
\+-                {/* action 2 here */}
&InvisibleTimes    {/* action 3 here */}

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:

[-+*=/]|\+-|&InvisibleTimes

However, if you want to have different actions associated with each of these, you need to do it like this:

[-+*=/]            {/* action 1 here */}
\+-                {/* action 2 here */}
&InvisibleTimes    {/* action 3 here */}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文