【问题标题】:How to extract part of string using regex如何使用正则表达式提取部分字符串
【发布时间】:2021-12-30 01:17:37
【问题描述】:

我正在尝试提取字符串的一部分作为日期时间戳。

示例字符串:

Upgrade starting on Mon Aug 9 06:46:00 UTC 2021 with ...

提取的值应该是:

Mon Aug 9 06:46:00 UTC 2021

我尝试应用以下正则表达式来提取时间戳:

(\d{2}:\d{2}:\d{2})

我怎样才能同时提取日月和年。

【问题讨论】:

  • ^(Upgrade starting on )(\S{3}) (\S{3}) (\d{1,2}) (\d{2}:\d{2}:\d{2}) (\S{3}) (\d{4})(.*) regex101.com/r/g4AHf4/1 这应该可以帮助您顺利上路
  • 不包括第一部分:(?<=Upgrade starting on )(\S{3}) (\S{3}) (\d{1,2}) (\d{2}:\d{2}:\d{2}) (\S{3}) (\d{4})(.*)
  • 如果字符串始终具有相同的开始和结束,我会提取“升级开始于”和“使用...”之间的所有内容并将其提供给日期解析器

标签: regex go


【解决方案1】:

使用正则表达式从原始字符串中提取部分字符串,以下是完整代码

package main

import (
    "fmt"
    "regexp"
)

func main() {

    // extract part of string using regex
    str := "Upgrade starting on Mon Aug 9 06:46:00 UTC 2021 with ..."

    // extract string "Mon Aug 9 06:46:00 UTC 2021" using regex
    re := regexp.MustCompile(`(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{1,2} \d{2}:\d{2}:\d{2} (\S{3}) \d{4}`)
    t := re.FindString(str)
    fmt.Println(t)

}

【讨论】:

  • UTC 部分应注意查看其他可能性
猜你喜欢
  • 1970-01-01
  • 2011-07-12
  • 2021-11-26
  • 2017-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多