You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写QRegExp正则表达式匹配含一个换行符\n及任意空格的字符串?

匹配仅含一个换行符和任意空格的QRegExp正则表达式

嘿,我来帮你搞定这个正则需求!根据你的要求,我们需要匹配**恰好包含一个换行符\n,其余字符全为空格(任意数量,包括零)**的字符串,对应的QRegExp正则写法如下:

QRegExp regex("^[ ]*\\n[ ]*$");

正则各部分解释

  • ^:锚定字符串的起始位置,确保我们从开头开始匹配
  • [ ]*:匹配零个或多个空格(用方括号包裹空格是为了可读性,你也可以直接写成 *,效果完全一致)
  • \\n:在C++字符串中需要转义反斜杠,所以用\\n表示正则里的换行符\n;如果是在Qt的字符串常量里直接写正则模式,这部分对应原生正则的\n
  • [ ]*:匹配换行符之后的零个或多个空格
  • $:锚定字符串的结束位置,确保整个字符串都符合规则,不会混入非空格/非换行的额外字符

匹配验证示例

✅ 符合规则的字符串:

  • "\n"(仅一个换行符,无空格)
  • " \n"(换行符前有3个空格)
  • "\n "(换行符后有3个空格)
  • " \n "(换行符前后各有2个空格)

❌ 不符合规则的字符串:

  • ""(空字符串,无换行符)
  • " "(仅空格,无换行符)
  • "\n\n"(包含两个换行符)
  • "abc\n"(混入非空格的字母)
  • "\nxyz"(混入非空格的字母)

额外提示

QRegExp默认的RegExp模式配合^和$已经能确保完全匹配整个字符串,不会出现部分匹配的情况;如果你的场景需要PCRE兼容的语法,也可以调用regex.setPatternSyntax(QRegExp::RegExp2),效果一致。

内容的提问来源于stack exchange,提问作者ma13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:25:04