Re: [問題] 分析帶括號的四則運算

看板RegExp (正規表示式 Regular Expression)作者 (妳,我可以)時間12年前 (2012/07/06 01:31), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《Rplus (R+) (9527)》之銘言: : 語言: javascript @ Windows : /* 聽說註明使用的語言、環境 : * 問題有可能較容易被解決... : */ : 想請問一下 : 有一字串想要確認是否為正確的四則運算 : 該如何寫其regex語法呢? : 允許的字符如列: : +-*/1234567890.() : 開頭可: [0-9\.\(\+\-] : 結尾可: [0-9\)] : 錯誤類別: [.0-9]( | )[.0-9] // 數字不與括號直連, 其間需有運算符 : [*/]) | ([*/] // 乘除後緊接右括號 或左括號緊接乘除 : ()左右括號沒有閉合 : 先此寫過~ 就小弟所知,如果要用 JavaScript Regex 作到很難,光是巢狀括號批配 就很難了,因為大部分的 Regex engine 並不支援遞迴,只有少部份如 PCRE 可以讓你這樣玩: (\((?R)\)|[^()]*+)* 這個問題還是用傳統的方法比較容易解決~各大資料結構課本裡面都有 -- http://godspeedlee.myweb.hinet.net/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.124.96.67

07/12 15:37, , 1F
regex library有很多種,javascript用的好像無法,
07/12 15:37, 1F

07/12 15:38, , 2F
oniguruma好像可以
07/12 15:38, 2F

07/14 09:44, , 3F
樓上你講的是ruby1.9之後的新regex engine吧?
07/14 09:44, 3F

07/14 09:44, , 4F
不過我個人的經驗是要用到這麼深的pattern的機會不多
07/14 09:44, 4F

07/14 09:45, , 5F
再說看了冼鏡光老師的C名題精選百則裡的解答發現比
07/14 09:45, 5F

07/14 09:45, , 6F
用regex硬幹簡單多了XD
07/14 09:45, 6F
文章代碼(AID): #1FzSzvQj (RegExp)
討論串 (同標題文章)
文章代碼(AID): #1FzSzvQj (RegExp)