我似乎在使用Haskell创建正则表达式时遇到了问题,我的目标是将这个字符串(匹配文本中的URL)转换为正则表达式:
\b(((\S+)?)(@|mailto\:|(news|(ht|f)tp(s?))\://)\S+)\b
我想把它转换成正则表达式,但在ghci中一直出现错误。
Prelude Text.RegExp> let a = fromString "\b(((\S+)?)(@|mailto\:|(news|(ht|f)tp(s?))\://)\S+)\b"
<interactive>:1:27:
lexical error in string/character literal at character 'S'
我猜测它失败的原因是Haskell不理解
\S
作为转义代码。有没有办法绕过这个问题呢?在Scala中,你可以用3个双引号括起一个字符串,我想知道在Haskell中是否可以实现类似的功能?
非常感谢您的帮助。