如何使用正则表达式提取部分字符串
Posted
技术标签:
【中文标题】如何使用正则表达式提取部分字符串【英文标题】: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
我尝试应用以下正则表达式来提取时间戳:
(\d2:\d2:\d2)
我怎样才能同时提取日月和年。
【问题讨论】:
^(Upgrade starting on )(\S3) (\S3) (\d1,2) (\d2:\d2:\d2) (\S3) (\d4)(.*)
regex101.com/r/g4AHf4/1 这应该可以帮助您顺利上路
不包括第一部分:(?<=Upgrade starting on )(\S3) (\S3) (\d1,2) (\d2:\d2:\d2) (\S3) (\d4)(.*)
如果字符串始终具有相同的开始和结束,我会提取“升级开始于”和“使用...”之间的所有内容并将其提供给日期解析器
【参考方案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) \d1,2 \d2:\d2:\d2 (\S3) \d4`)
t := re.FindString(str)
fmt.Println(t)
【讨论】:
UTC
部分应注意查看其他可能性以上是关于如何使用正则表达式提取部分字符串的主要内容,如果未能解决你的问题,请参考以下文章