123_
のような文字列から123 :: Integer
の値を検索するには、正規表現関連のHaskellライブラリを使用しますか?正規表現を使って整数をHaskellにマッチさせるにはどうすればよいですか?
import Text.Regex.Posix
let (_,_,_,[sectionKey]) = ("123_") =~ ("(\\d+)_" :: String) :: (String, String, String, [Int])
私はエラーを生成します(https://hackage.haskell.org/package/regex-posixライブラリを使用して)上記を試してみた:
• No instance for (RegexContext
Regex [Char] (String, String, String, [Int]))
arising from a use of ‘=~’
• In the expression:
("123_") =~ ("(\\d+)_" :: String) ::
(String, String, String, [Int])
In a pattern binding:
(_, _, _, [sectionKey])
= ("123_") =~ ("(\\d+)_" :: String) ::
(String, String, String, [Int])
これは単純化された場合ですが、私は正規表現を提供するソリューションを探しています互換性のあるソリューションです。
を、それを使用して、\ D + '。*'の代わりに '? – Jan
提案をお寄せいただきありがとうございます。どちらも問題ありません。 –
このエラーを解決するために何をしましたか?そのようなインスタンスは実際にはありませんので、もちろんこのコードは機能しません(インスタンスが実際に存在するような異なるタイプを指定してください)。 – user2407038