Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Text.Regex.Posix=~将字符与\d匹配?_Regex_Haskell_Posix - Fatal编程技术网

为什么Text.Regex.Posix=~将字符与\d匹配?

为什么Text.Regex.Posix=~将字符与\d匹配?,regex,haskell,posix,Regex,Haskell,Posix,有人能解释一下ghci中的这种互动是如何可能的吗 *Main Text.Regex.Posix> "d1" =~ "\\d" :: String "d" *Main Text.Regex.Posix> "d1" =~ "\\d" :: Int 1 我认为\d代表数字,因此我不明白它如何匹配字符串中的字符d,而不是字符1 注意:使用ghci 7.10.3时,仅支持c posix正则表达式api。POSIX正则表达式语法没有将\d定义为数字的速记字符类,相反,它具有必须在括号表达式中使

有人能解释一下ghci中的这种互动是如何可能的吗

*Main Text.Regex.Posix> "d1" =~ "\\d" :: String
"d"
*Main Text.Regex.Posix> "d1" =~ "\\d" :: Int
1
我认为
\d
代表数字,因此我不明白它如何匹配字符串中的字符
d
,而不是字符
1

注意:使用ghci 7.10.3时,仅支持c posix正则表达式api。POSIX正则表达式语法没有将
\d
定义为数字的速记字符类,相反,它具有必须在括号表达式中使用的
[:digit:
POSIX字符类,例如
[:digit:]
。但是,使用
[0-9]
匹配常规ASCII数字更容易、更短


要在模式中使用
\d
,您可能需要使用。

\d
在POSIX正则表达式中并不意味着任何特殊的内容。它只匹配
d
。试试
[[:digit:]
。哦,这些括号!非常感谢。