私はハスケルでこれを行うことができるように、このような質問のHaskellにpython regex(PCRE)Haskellの2つの部分文字列の間の文字列を抽出します。
しかし私はGHC(8.2.1)でそれを動作させる方法を理解できません。私はcabal install regex-pcre
をインストールし、いくつかの検索の後に、次のテストコードを思い付いてきました:
import Text.Regex.PCRE
s = "+++asdf=5;iwantthis123jasd---"
result = (s ++ s) =~ "asdf=5;(.*)123jasd" :: [[String]]
「私は
iwantthis
の真ん中の文字列の最初と最後のインスタンスを取得するために期待していた。しかし、私はすることができますtは正しい結果を得る:
[[ "ASDF = 5; iwantthis123jasd --- +++ ASDF = 5; iwantthis123jasd"、 "iwantthis123jasd --- +++ ASDF = 5; iwantthis"]]
以前はHaskellでregexやpcreを使用していませんでした。
誰かが適切な使い方(最初と最後のオカレンスを抽出するのに役立ちますか)を教えてください。 また、ここでは::[[String]]
の使用法についてよく分かりません。それは何のために必要なのですか?
documentationを検索しましたが、タイプ変換が:: [[String]]
であることについての使用方法は見つかりませんでした。
'マップ(!!は、1)'より読みやすいかもしれません:各試合は1
あなたは
(.*?)
一部のキャプチャのリストを取得するためにmap (head . tail)
またはそれにmap (!!1)
を使用することができますキャプチャグループとして"iwantthis"
を持っています番号はキャプチャグループを示すためです。 – 4castle