編輯:一個工作正則表達式(以第二組):哈斯克爾正則表達式語法
(^|[ ,\t\n]+)([0-9\\.]+)($|[ ,\t\n]+)
原帖:
我是新來的Haskell,欲以Text.Regex(從regex- compat)從字符串中提取浮點值。我希望我的正則表達式匹配由至少一個分隔符字符向左和向右緩衝的任何一系列數字和句點。這是我寫的:
regex = "[^ \t\n,]+([0-9\\.])+[$ \t\n,]+"
編輯:我本來以爲這工作正常Scala中,但現在我相信,我只是很幸運我的測試字符串。這在Haskell中不起作用。舉個例子:
matchRegexAll (mkRegex regex) " 12.34 "
產生
Just (" ","12.34 ","",["4"])
時,在我看來,它應該產生
Just (""," 12.34 ","",["12.34"])
又如:
matchRegexAll (mkRegex regex) "12.34"
產量
Nothing
當我覺得它應該產生
Just ("","12.34","",["12.34"])
我猜分析器把「^」,並且不Scala的解析器「$」不同,但這是我的一切。
如果斯卡拉做你期望與該正則表達式,該正則表達式引擎必須被打破。 – kennytm 2012-01-15 19:56:23