Qt 实用正则表达式

Qt 里正则表达式使用 QRegularExpression,可以使用正则表达式查找字符串,QString 中可以使用正则表达式QRegularExpression 进行字符串替换,拆分等。


一、查找字符串中的 URL

#include <QDebug>
#include <QRegularExpression>

int main(int argc, char *argv[]) 
{

	// 简单的 URL 正则表达式
	QRegularExpression regExp("http://.+?\\.(com\\.cn|com)");
	
	//查找第一个 URL
	 QRegularExpressionMatch match1 = regExp.match("请把http://www.baidu.com和http://www.sina.com.cn打开");
	
	qDebug() << match1.captured(0);
	
	// 查找所有的 URL
	 QRegularExpressionMatchIterator iter = regExp.globalMatch("请把http://www.baidu.com和http://www.sina.com.cn打开");
	
	
	while (iter.hasNext()) 
	{
		QRegularExpressionMatch match2 = iter.next();
		qDebug() << match2.captured(0);
	}
	return 0;
} 

输出
“http://www.baidu.com”
“http://www.baidu.com”
“http://www.sina.com.cn”


二、字符串替换

#include <QDebug>
#include <QRegularExpression>

int main(int argc, char *argv[]) 
{
	//普通替换
	QString s = "Banana";
 	s.replace(QRegularExpression("a[mn]"), "ox");
 	qDebug() << s; // s == "Boxoxa"
 
	// 替换时使用正则捕捉到的第一组的内容, \\1 表示第一组
	QString t = "A <i>bon mot</i>.";
 	t.replace(QRegularExpression("<i>([^<]*)</i>"), "\\emph{\\1}");
	qDebug() << t; // t == "A \\emph{bon mot}."
	return 0;
}

三、字符串拆分

#include <QDebug>
#include <QRegularExpression>

int main(int argc, char *argv[]) 
{
	QString str = "Some text\n\twith strange whitespace.";;
	QStringList list = str.split(QRegularExpression("\\s+")); // 用连续的多个空白字符进行字符串拆分,空格,回车等都是空白字符
	
	qDebug() << list; // list: [ "Some", "text", "with", "strange", "whitespace." ]
	return 0;
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值