QRegexp matching
QRegexp matching
我想做的事情:
- 查找所有类型为autogen_X.c、autogen_X.h或Project name.c的文件(在根级别的src文件夹中)
- 打印出来
我的QRegExp是:\nsrc[^\n]*
我的文本是:
####################################################################
# Files #
####################################################################
C_SRC +=
src/autogen_init.c
src/autogen_init.h
src/Project name.c
lib/src/acmp.c
lib/src/adc.c
lib/src/aes.c `
s_SRC +=
Device/Source/G++/startup_32.s
S_SRC +=
我拥有的代码
QRegExp linkRx = QRegExp("src/[^\n]*");
linkRx.indexIn(content);
foreach (QString match, linkRx.capturedTexts())
{
qDebug() << match;
}
我得到的输出
"src/autogen_init.c "
这是否应该不匹配所有仅以src/
开头的文件?
您应该对文件进行预处理,这将大大简化任务:
text.replace("\n", " ");
(一行末尾的表示与下一行连接)。
然后,您可以使用regexp (src/[^ ]*)
捕获您想要的内容。注意括号,以便捕获文本。
此外,此正则表达式将在lib/src/adc.c
中捕获src/adc.c
。要解决这个问题,您可以使用regexp,它将某些字符排除在"src"之前,例如:([^a-zA-Z_0-9/]src/[^ ]*)
。
请注意,它不能将文件名与其中的空格匹配。顺便说一句,在普通的qmake文件中,带空格的名称放在引号之间。仅使用regexp无法正确解析引号。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++Matching Brackets 2解决方案不起作用
- "no matching function for call to 'Vector::Vector'"错误
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 从 TVector2 类派生复杂类:"No matching function for call to Complex::Complex()"
- 学习 c++,编译错误"no matching function for call"
- C++ "error: no matching function"
- 尝试实例化模板类的对象时出现"No Matching Constructor"错误
- 结构错误:"no matching function for call to "
- 创建函数变体向量时"No matching function for call"错误
- 为什么"std::isdigit"在 Windows 上报告C++"no matching overloaded function"
- 编译时二叉搜索树错误的反向迭代器表示"no matching function call for operator=()"
- 如果子类中没有构造函数方法,则错误"no matching function for call to 'LGame::LGame(String&)'"
- 提升多精度浮点数128:标准::exp错误:'no matching function for call'
- "error: no matching function for call to",我无法更改结构的定义
- 替换派生对象向量中的对象"no matching function to call"
- 我的程序显示许多错误,"error: no matching function for call to 'getPercentScore'"
- QRegexp matching