• 1371阅读
  • 2回复

Qt的正则表达式怎么用? [复制链接]

上一主题 下一主题
离线纹枰老妖
 

只看楼主 倒序阅读 楼主  发表于: 2021-01-14
有一堆原始字符串,我想替换掉里面的某些字符串,要求:把所有大写字母之间的连续空格,都换成一个空格即可。比如原始字符串【ABCD       XYZ】,经过处理变成【ABCD XYZ】就好,我使用的是正则表达式【[A-Z]\s+[A-Z]】,处理后字符串变成【ABC YZ】,空格确实变成一个,但可惜正则还把那个D和X都去掉了,这就不行了,请问我应该如何改那个正则表达式,才能真正成功呢?


请注意:只替换两边都是大写字母之间的空格,像【ABCD       xYZ】这种原始字符串,就不需要处理,因为右边的是小写字母。
离线yangbaolin

只看该作者 1楼 发表于: 2021-01-15
   QString raw = "ABCD       XYZ";
    raw = raw.replace(QRegExp("([A-Z])\\s+([A-Z])"), "\\1 \\2");
    qDebug()<<raw;//"ABCD XYZ"
4条评分好评度+1贡献值+1金钱+10威望+1
20091001753 好评度 +1 - 2021-01-15
20091001753 贡献值 +1 - 2021-01-15
20091001753 威望 +1 - 2021-01-15
20091001753 金钱 +10 - 2021-01-15
离线纹枰老妖

只看该作者 2楼 发表于: 2021-01-21
回 yangbaolin 的帖子
yangbaolin:   QString raw = "ABCD       XYZ";
    raw = raw.replace(QRegExp("([A-Z])\\s+([A-Z])"), "\\1 \\2");
    qDebug()<<raw;//"ABCD XYZ" (2021-01-15 16:22) 

谢谢您,我会用了
快速回复
限100 字节
 
上一个 下一个