You need to enable JavaScript to run this app. Perl如何截取时间字符串指定片段并存储首个+-分隔符
优惠活动
大模型
产品
解决方案
定价
更多

Perl如何截取时间字符串指定片段并存储首个+-分隔符

正确实现代码

用正则捕获组可以同时完成分隔符存储和目标内容提取,适配你的所有匹配规则:

my $time1 = "2021-01-02T11:12:00+01:00";

# 正则匹配逻辑:
# 第1捕获组([+-]):匹配你需要的+/-分隔符
# 第2捕获组(\d+):匹配分隔符后到最后一个:之前的数字内容
# 正向预查(?=:[^:]*$):定位字符串中最后一个:的位置,不占用匹配字符
if ($time1 =~ /([+-])(\d+)(?=:[^:]*$)/) {
    my $delimiter = $1; # 存储匹配到的分隔符
    my $result = $2;    # 你预期的输出结果
    print $result;
}

运行上述代码输出为01,变量$delimiter会存储本次匹配到的分隔符+。如果是带负时区偏移的时间字符串(例如2021-01-02T11:12:00-08:00),代码会自动捕获分隔符-,输出结果08。

原有代码问题说明

你使用的split写法只能按+分割字符串,没有匹配到最后一个:的逻辑,也无法捕获分隔符本身,因此无法满足需求。


内容的提问来源于stack exchange,提问作者Darwick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 04:54:03