【问题标题】:Regex: Regular expression for algorithmic operations with parentheses [duplicate]正则表达式:带括号的算法操作的正则表达式
【发布时间】:2014-07-01 07:05:33
【问题描述】:

我需要帮助来构建一个接受基本算术运算算法的regular expression,但也允许meter operations 在任意数量的括号中

到目前为止,我有这样的表达方式:

^([(]*(-)?\d+(\.\d+)?[)]?)([(]?[-+/*%^]?\d+(\.\d+)?[)]*)+

碰巧上面的表达式在没有右括号或未打开的情况下接受了我(括号必须成对出现)。 我出示了我做的证据,红框中的不应该接受 http://regexr.com/38r4u

希望你能帮助我,

谢谢。

【问题讨论】:

  • 你的正则表达式实现是什么? PHP、JavaScript、.NET、...
  • 正则表达式实现 .NET (C#)
  • 那你可以尝试使用平衡组(msdn.microsoft.com/en-us/library/…),哪种实现递归。

标签: regex expression parentheses


【解决方案1】:

您不能使用正则表达式解析递归结构。请改用解析器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多