首页 > 解决方案 > 何使用正则表达式来做到这一点?

问题描述

我正在尝试创建与以下模式匹配的正则表达式代码:

{format:Tx.(string_of_date_format)}

其中 Tx 可以是 Tn T-1 T0 T1 T2 Tn 和 string_of_date_format 可以是表示日期格式 yyyyMMdd 的任何字符串,例如这是我的实现,我不知道为什么它不匹配

{format:^T(-?[0-9]+)([+-][0-9]+)?$[.]([a-zA-Z])}

所以我可以像在这个例子中一样使用它:{format:T2.(yyyyMMdd)}

标签: regex

解决方案


您可以使用

{format:T-?[0-9]+(?:[+-][0-9]+)?\.\([a-zA-Z]+\)}

请参阅正则表达式演示。细节:

  • {format:T- 文字字符串
  • -?- 一个可选的-
  • [0-9]+- 一位或多位数字
  • (?:[+-][0-9]+)?- 可选出现+-,然后是一个或多个数字
  • \.- 一个点
  • \(- 一个(字符
  • [a-zA-Z]+- 一个或多个字母
  • \)}-)}子串。

推荐阅读