我正在尝试编写一个函数,该函数接受输入字符串、正则表达式(由 std.regex.regex 从原始字符串生成)和错误消息字符串,并尝试匹配来自使用正则表达式输入字符串,如果没有匹配则显示错误消息。到目前为止我想出了以下签名:
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,或 UTF-32 的 dchar
。编译器表示您需要通过传递所需的 Char
参数来创建一个类型,以便在此处使用它。
由于您使用的是由 char
组成的 string
,因此 Regex!char
是要使用的类型。
string check_for_match (string input, Regex!char r, string error_message) { return null; }
关于regex - std.regex.regex 的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24967276/