构建时出现此错误:
dist/package.conf.inplace:
inappropriate type
FAILED DURING THE BUILDING PHASE. The **exception** was: ExitFailure 1
如何在包中使用subRegex
Text.Regex?
我写道:
import Text.Regex.Posix
但我收到了这个错误:
_.hs:13:5: Not in scope: ‘subRegex’
_.hs:13:15:
Not in scope: ‘mkRegex’
Perhaps you meant ‘makeRegex’ (imported from Text.Regex.Posix)
所以,我去了Text.Regex
[页码] [1],然后说:
使用
Text.Regex.Posix
中的POSIX正则表达式接口。
那么为什么这些功能不在范围内呢?
答案 0 :(得分:9)
以下是您可以执行的一些步骤。
:mod +Text.Regex
以加载包。subRegex (mkRegex "[0-9]+") "foobar567" "123"
"foobar123"
(加载所有包后)。
:: Regex Search pattern
-> String Input string
-> String Replacement text
-> String Output string
用替换替换给定正则表达式的每个出现 字符串。
在替换字符串中,“\ 1”表示第一个子字符串; “\ 2”来 第二个等;和整个比赛的“\ 0”。 “\\”将插入一个 文字反斜杠。
如果正则表达式匹配空字符串,则不会提前。这个 错误在这里是为了匹配原始的行为 Text.Regex API。
一些很酷的链接可以帮助您深入研究:
http://www.serpentine.com/blog/2007/02/27/a-haskell-regular-expression-tutorial/和
https://wiki.haskell.org/Cookbook/Pattern_matching
我在Windows中使用它,这是我的屏幕:
答案 1 :(得分:5)
您不应该导入Text.Regex.Posix
,而是 Text.Regex
,因为您想要的两个功能都在那里。
看看the Hackage page - 你几乎就在那里,但实际上在那个文件中的功能。