Qt正则表达式不匹配
Qt regex not matching
Qt的正则表达式(c++)不像我期望的那样工作。例如,在下一行(空格作为句号)
.....mRNA............complement(join(<85666..86403,86539..>86727))
"mRNA"不匹配:
QRegExp rxItem("^\s{5}(\w+)") ;
但是通过以下方式匹配:
QRegExp rxItem("\s{4}(\w+)") ;
因此,由于某种原因,看起来好像行开始和第一个空格没有被识别。我检查了QRegExp的Qt文档,据我所知,"^"表示行开始,s是Perl中的空格。
任何想法?
欢呼
以下代码:
#include <QtCore/QRegExp>
#include <QtCore/QString>
#include <QtCore/QDebug>
int main(int argc, char *argv[])
{
QString test = " mRNA complement(join(<85666 86403,86539 >86727))";
QRegExp rxItem( "^\s{5}(\w+)" );
if( rxItem.indexIn( test ) != -1 )
{
qDebug() << "Matched" << rxItem.cap( 1 );
}
else
{
qDebug() << "No match";
}
return 0;
}
显示Matched "mRNA"
所以它似乎是有效的。你可能会把indexIn
返回的结果0当作错误吗?
相关文章:
- C++:匹配正则表达式,什么是匹配?
- C++ 正则表达式不匹配空格
- 如何提升Perl正则表达式匹配,支持区分大小写/不区分大小写
- C++正则表达式字符类不匹配
- 调试正则表达式不匹配
- 正则表达式在 c++ 中不匹配?
- 正则表达式 - 匹配不遵循特定模式的字符
- 我的 Boost 正则表达式与任何内容都不匹配
- (C++) 确定不匹配的正则表达式捕获组
- C++11 正则表达式匹配不以句点结尾的完整单词
- 为什么regex_match与我的正则表达式不匹配
- 不使用正则表达式的C++多字符串匹配
- 在不使用正则表达式的情况下解析 HTTP 请求
- 在C++中匹配正则表达式的惯用方法
- Boost正则表达式不替换正则表达式网站上正确替换的表达式
- PHP-CPP C++ 扩展找不到正则表达式
- 如何查找给定的字符串是否符合十六进制表示法,例如不带正则表达式的0x34FF
- 如何在c++中匹配正则表达式中的 字符
- 在不使用正则表达式之前和之后输出字符串向量'word'。制定相关程序
- 整数匹配正则表达式模式不工作