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