Re: [问题] 分析带括号的四则运算

楼主: godspeedlee (妳,我可以)   2012-07-06 01:31:31
※ 引述《Rplus (R+) (9527)》之铭言:
: 语言: javascript @ Windows
: /* 听说注明使用的语言、环境
: * 问题有可能较容易被解决...
: */
: 想请问一下
: 有一字串想要确认是否为正确的四则运算
: 该如何写其regex语法呢?
: 允许的字符如列:
: +-*/1234567890.()
: 开头可: [0-9\.\(\+\-]
: 结尾可: [0-9\)]
: 错误类别: [.0-9]( | )[.0-9] // 数字不与括号直连, 其间需有运算符
: [*/]) | ([*/] // 乘除后紧接右括号 或左括号紧接乘除
: ()左右括号没有闭合
: 先此写过~
就小弟所知,如果要用 JavaScript Regex 作到很难,光是巢状括号批配
就很难了,因为大部分的 Regex engine 并不支援递回,只有少部份如
PCRE 可以让你这样玩:
(\((?R)\)|[^()]*+)*
这个问题还是用传统的方法比较容易解决~各大资料结构课本里面都有
作者: buganini (霸格尼尼)   2012-07-12 15:37:00
regex library有很多种,javascript用的好像无法,oniguruma好像可以
楼主: godspeedlee (妳,我可以)   2012-07-14 09:44:00
楼上你讲的是ruby1.9之后的新regex engine吧?不过我个人的经验是要用到这么深的pattern的机会不多再说看了冼镜光老师的C名题精选百则里的解答发现比用regex硬干简单多了XD

Links booklink

Contact Us: admin [ a t ] ucptt.com