繁体   English   中英

正则表达式 - 没有引号的单个单词和引号内的多个单词

[英]Regex - Single Word Without Quotes and Multiple Words Within Quotes

对于正则表达式大师来说应该是一个简单的。 我在 regex101 上玩得很不走运...

我正在使用 VBA 和 Access,我想清理富文本; 我不介意颜色、粗体、下划线,但我想强制字体样式和大小。

我有这个

    With objRegEx
        .Global = True
        'Replace font size
        .Pattern = "size=[0-9]"
        strText = .Replace(strText, " size=" & nSize)
        'Replace font face
        .Pattern = "face=([""'])(?:[\r\n]*(?=(\\?))\2.)*?\1"
        strText = .Replace(strText, "face=" & strFont)
    End With

但它仅在字体包含在引号中时才有效。 这不适用于单字命名的字体。

我需要匹配

font="Times New Roman"
font='Times New Roman'
font=Calibri

谢谢!

您可以使用

.Pattern = "size=[0-9]+"

这里, [0-9]+匹配一位或多位数字。

要解决您可以使用的主要问题

.Pattern = "face=(?:""[^""]*""|'[^']*'|\S+)"

请参阅正则表达式演示 详情

  • face= - 一个字符串
  • (?:"[^"]*"|'[^']*'|\\S+) - 非捕获组匹配
    • "[^"]*"| - " ,然后是除"之外的任何零个或多个字符,然后是"字符,或
    • '[^']*'| - ' ,然后是除''字符以外'零个或多个字符,或
    • \\S+ - 一个或多个非空白字符

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM