regex - 何使用正则表达式来做到这一点?
问题描述
我正在尝试创建与以下模式匹配的正则表达式代码:
{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)}
解决方案
您可以使用
{format:T-?[0-9]+(?:[+-][0-9]+)?\.\([a-zA-Z]+\)}
请参阅正则表达式演示。细节:
{format:T
- 文字字符串-?
- 一个可选的-
[0-9]+
- 一位或多位数字(?:[+-][0-9]+)?
- 可选出现+
或-
,然后是一个或多个数字\.
- 一个点\(
- 一个(
字符[a-zA-Z]+
- 一个或多个字母\)}
-)}
子串。