regex - std.regex.regex 的返回值?

标签 regex d phobos

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

相关文章:

php - 当 haystack 是 exec() 输出时,preg_match 返回 null

java - 查找指定长度的正则表达式,并且在 Java 中也指定了开始和结束

ruby - 使用正则表达式作为条件循环(直到)

enums - 根据成员的值将 int 转换为适当的枚举值

d - 检查字符串是否以 D/phobos 中的子字符串开头?

d - 读取 D 中的文本文件

Java - 如何在加号上拆分字符串?

d - 编译时评估

arrays - 垃圾收集器是否保留仅由原始指针引用的数组?