看板 RegExp 關於我們 聯絡資訊
※ 引述《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
buganini:regex library有很多種,javascript用的好像無法, 07/12 15:37
buganini:oniguruma好像可以 07/12 15:38
godspeedlee:樓上你講的是ruby1.9之後的新regex engine吧? 07/14 09:44
godspeedlee:不過我個人的經驗是要用到這麼深的pattern的機會不多 07/14 09:44
godspeedlee:再說看了冼鏡光老師的C名題精選百則裡的解答發現比 07/14 09:45
godspeedlee:用regex硬幹簡單多了XD 07/14 09:45