所以我一直很难找到正确的语法来捕获Word中特定类型的字符串。我已经弄清楚了正则表达式,但 Outlook/Word 中的符号不同,并且
*
似乎没有按照我想要的方式运行。任何人都可以协助使用以下表达式的通配符版本吗?是否可以通过 VBA 在 Outlook/Word 中使用正则表达式搜索而不是通配符中使用的符号?
时间,例如
9:54
或 10:23
,带或不带 am
、a.m.
、AM
、A.M.
、pm
、p.m.
、PM
、P.M.
:
\d{1,2}[:]\d{2}\ ?([aAPp].?[Mm].?)?
我想这就是你想要的:
\d{1,2}:\d{2}(?:\s?[AaPp]\.?[Mm]\.?)?
\d{1,2}:\d{2}
- 匹配 1-2 位数字,后跟 :
,然后是 2 位数字(?
- 非捕获组的开始
:
- 匹配文字 :
\s?
- 匹配零个或一个空格[AaPp]
- 匹配集合中的任何字符\.?
- 匹配零或一 .
[Mm]
- 匹配集合中的任何字符\.?
- 匹配零或一 .
)
- 非捕获组结束?
- 匹配零个或一个非捕获组