3

我正在尝试编写一个函数,该函数采用输入字符串、正则表达式(由原始字符串制成std.regex.regex)和错误消息字符串,并尝试使用正则表达式匹配输入字符串中的某些内容,如果没有则显示错误消息火柴。到目前为止,我想出了以下签名:

string check_for_match (string input, Regex r, string error_message)

但是,这似乎不起作用,因为编译器抱怨说:

struct std.regex.Regex(Char) is used as a type

那么我应该改用什么?

4

1 回答 1

4

如果您更改RegexRegex!char.

原因是它Regex是一个可以使用任何字符大小的模板:char对于 UTF-8 模式、wchar对于 UTF-16 或dchar对于 UTF-32。编译器说您需要通过在此处传递所需的Char参数来创建一个类型以在此处使用它。

由于您正在使用stringchars 组成的 ,Regex!char因此是要使用的类型。

string check_for_match (string input, Regex!char r, string error_message) { return null; }
于 2014-07-26T11:53:13.610 回答