EDIT:作業正規表現(第2のグループを取る):Haskellの正規表現の構文
(^|[ ,\t\n]+)([0-9\\.]+)($|[ ,\t\n]+)
オリジナルのポスト:
私はregex-からText.Regexを(使用しようと、ハスケルに新たなんですcompat)を使用して、文字列から浮動小数点値を抽出します。私は、正規表現が、少なくとも1つの区切り文字で左右に並んでいる数字とピリオドに一致するようにしたい。
regex = "[^ \t\n,]+([0-9\\.])+[$ \t\n,]+"
EDITを:私はもともとこれはScalaで適切に働いていたと思ったが、私は今、私は単に私のテスト文字列と幸運と信じてこれは私が書いたものです。これはハスケルでは機能しません。例:
matchRegexAll (mkRegex regex) " 12.34 "
利回り
Just (" ","12.34 ","",["4"])
それは私には思えるとき、それはもう一つの例
Just (""," 12.34 ","",["12.34"])
が得られるはずです:
matchRegexAll (mkRegex regex) "12.34"
が
を生み出しますNothing
それは私はそれが私がScalaのパーサをしている異なったパーサが扱う「^」と「$」を推測しているが、それは私が持っているすべてです
Just ("","12.34","",["12.34"])
が得られるはずだと思うとき。
もし、その正規表現で期待していることをScalaが行うのであれば、その正規表現エンジンは壊れていなければなりません。 – kennytm