※ 引述《Rplus (R+) (9527)》之铭言:
: 语言: javascript @ Windows
: /* 听说注明使用的语言、环境
: * 问题有可能较容易被解决...
: */
: 想请问一下
: 有一字串想要确认是否为正确的四则运算
: 该如何写其regex语法呢?
: 允许的字符如列:
: +-*/1234567890.()
: 开头可: [0-9\.\(\+\-]
: 结尾可: [0-9\)]
: 错误类别: [.0-9]( | )[.0-9] // 数字不与括号直连, 其间需有运算符
: [*/]) | ([*/] // 乘除后紧接右括号 或左括号紧接乘除
: ()左右括号没有闭合
: 先此写过~
就小弟所知,如果要用 JavaScript Regex 作到很难,光是巢状括号批配
就很难了,因为大部分的 Regex engine 并不支援递回,只有少部份如
PCRE 可以让你这样玩:
(\((?R)\)|[^()]*+)*
这个问题还是用传统的方法比较容易解决~各大资料结构课本里面都有