c++ - 如何在正则表达式中匹配 '*'

标签 c++ c regex operating-system

我正在尝试在 C 中实现正则表达式,我有以下代码来查找其中包含 '*' 的所有字符串,

regex_t regex;
regcomp(&regex, "^[A-Za-z0-9\*]+$", 0);

if (!regexec(&regex, args[j], 0, NULL, 0)) {
    printf("string found");
}

这是正确的做法吗?我的代码不匹配包含“*”的字符串。对此的任何帮助将不胜感激。

最佳答案

在C++中,字符\需要转义。所以如果你想转义一个正则表达式*,你需要做\\*。那应该可以解决问题。每当你在字符串中使用反斜杠时,你都需要像那样转义它。如果您需要使用正则表达式在字符串中找到它,则需要使用 \\\\ 进行搜索。

关于c++ - 如何在正则表达式中匹配 '*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20256922/

相关文章:

python - 将 perl 正则表达式转换为 python 正则表达式

c++ - OpenGL glVertexPointer 返回 1281 - 不知道为什么

c++ - Qt 使用 QNetworkReply 获取网络请求,将数据下载到临时文件

c++ - 一个大的 OpenGL 顶点缓冲区,还是许多小的?

c - 在 Windows 上为一个 libevent 绑定(bind)创建 3 个套接字?

java - JNI 字符串和 C 字符串

regex - 正则表达式与egrep

javascript - 即使 regExp 匹配,Angular 模板驱动表单的字段也被视为无效

C++ 重载加号运算符以将元素添加到对象

c - Realloc 在 C 中的实现