将通配符转换为时间正则表达式

问题描述 投票:0回答:1

所以我一直很难找到正确的语法来捕获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].?)?
regex outlook wildcard
1个回答
0
投票

我想这就是你想要的:

\d{1,2}:\d{2}(?:\s?[AaPp]\.?[Mm]\.?)?
  • \d{1,2}:\d{2}
    - 匹配 1-2 位数字,后跟
    :
    ,然后是 2 位数字
  • (?
    - 非捕获组的开始
    • :
      - 匹配文字
      :
    • \s?
      - 匹配零个或一个空格
    • [AaPp]
      - 匹配集合中的任何字符
    • \.?
      - 匹配零或一
      .
    • [Mm]
      - 匹配集合中的任何字符
    • \.?
      - 匹配零或一
      .
  • )
    - 非捕获组结束
  • ?
    - 匹配零个或一个非捕获组

演示

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.