我正在尝试编写一个函数,该函数需要输入字符串,正则表达式(由std.regex.regex
从rawstring制作)和错误消息字符串,并尝试使用正则表达式从输入字符串匹配某些内容,如果没有匹配,则显示错误消息。到目前为止,我想出了以下签名:
string check_for_match (string input, Regex r, string error_message)
然而,这似乎不起作用,编译器抱怨说:
struct std.regex.Regex(Char) is used as a type
那么我应该用什么来代替呢?
将Regex
更改为Regex!char
会编译
原因是Regex
是一个可以使用任何字符大小的模板:char
用于UTF-8模式,wchar
用于UTF-16,或dchar
用于UTF-32。编译器说你需要通过在那里传递所需的Char
参数来创建一个类型,以便在这里使用它。
由于您正在使用string
,它由char
s组成,因此Regex!char
是要使用的类型。
string check_for_match (string input, Regex!char r, string error_message) { return null; }