Ral*_*lph 8 regex haskell pattern-matching
在Scala中,我有一个正则表达式模式匹配,如下所示:
val Regex = """(\d{4})/(\d{2})/(\d{2})""".r
val Regex(year, month, day) = "2013/01/06"
Run Code Online (Sandbox Code Playgroud)
结果是:
year: String = 2013
month: String = 01
day: String = 06
Run Code Online (Sandbox Code Playgroud)
如何在Haskell中完成类似的结果?换句话说,我可以匹配包含组的正则表达式并将组分配给标识符吗?
Chr*_*ris 15
这对我有用:
Prelude Text.Regex.Posix> "2013/01/06" =~ "([0-9]+)/([0-9]*)/([0-9]*)" :: (String,String,String,[String])
("","2013/01/06","",["2013","01","06"])
Run Code Online (Sandbox Code Playgroud)
(OS X上的ghci 7.4.2)
Ral*_*lph 10
扩展了Chris的答案,以下工作与我的Scala版本类似:
ghci> :m +Text.Regex.Posix
ghci> let (_, _, _, [year, month, day]) ="2013/01/06" =~ "([0-9]+)/([0-9]*)/([0-9]*)" :: (String,String,String,[String])
ghci> year
"2013"
ghci> month
"01"
ghci> day
"06"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5566 次 |
| 最近记录: |