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

VBA处理Access富文本如何匹配带引号多词、无引号单名的font属性

调整后的正则与完整代码

你可以把原有匹配字体属性的正则替换为适配三种写法的规则,同时可优化字号匹配规则,适配多位数字号场景:

With objRegEx
    .Global = True
    ' 替换字体大小,优化后支持匹配1位以上的字号(如12、16号)
    .Pattern = "size=[0-9]+"
    strText = .Replace(strText, " size=" & nSize)
    ' 替换字体名称,兼容单引号、双引号、无引号三种写法
    .Pattern = "face=(?:([""'])(.*?)\1|([^\s>]+))"
    ' 替换时统一用双引号包裹字体名,避免后续富文本解析出问题
    strText = .Replace(strText, "face=""" & strFont & """")
End With

如果你的富文本中字体属性的名称是font而非face,只需把正则开头的face=替换为font=即可适配。


正则规则说明

  • (?:) 为非捕获分组,内部用|拆分两种匹配场景
  • 第一种场景([""'])(.*?)\1:匹配被单/双引号包裹的字体名,先捕获开头的引号类型,中间非贪婪匹配所有内容,直到遇到相同的闭合引号为止,适配带空格的多词字体名
  • 第二种场景([^\s>]+):匹配无引号包裹的字体名,连续匹配所有非空格、非标签闭合符>的字符,适配无空格的单字体名称
  • 替换时统一给字体名加双引号,能保证输出的富文本属性格式统一,避免无引号字体名带空格时解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:45:03