d - std.regex.regex的返回值



我正在尝试编写一个函数,该函数需要输入字符串,正则表达式(由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; }

最新更新