[英]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.