我正在尝试在 C 中实现正则表达式,我有以下代码来查找其中包含 '*' 的所有字符串,
regex_t regex;
regcomp(®ex, "^[A-Za-z0-9\*]+$", 0);
if (!regexec(®ex, args[j], 0, NULL, 0)) {
printf("string found");
}
这是正确的做法吗?我的代码不匹配包含“*”的字符串。对此的任何帮助将不胜感激。
最佳答案
在C++中,字符\
需要转义。所以如果你想转义一个正则表达式*
,你需要做\\*
。那应该可以解决问题。每当你在字符串中使用反斜杠时,你都需要像那样转义它。如果您需要使用正则表达式在字符串中找到它,则需要使用 \\\\
进行搜索。
关于c++ - 如何在正则表达式中匹配 '*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20256922/