如何从含固定8位日期格式的随机字符串中提取年份?
从包含固定8位日期的随机字符串中提取年份
当然可以搞定!这种场景用正则表达式就非常合适——毕竟你的日期是固定的8位数字格式(YYYYMMDD),我们只需要先定位到这段数字,再截取前四位就是年份了。
核心思路
- 用正则匹配字符串中的8位连续数字(也就是你的日期部分);
- 从匹配到的8位数字中截取前4位,这就是我们要的年份。
具体实现示例
Python 版本
import re input_str = "randomtext20221108randomtext" # 匹配8位连续数字 date_match = re.search(r'\d{8}', input_str) if date_match: date_str = date_match.group() year = date_str[:4] print(f"提取到的年份:{year}") else: print("未找到符合格式的日期")
JavaScript 版本
const inputStr = "randomtext20221108randomtext"; const dateMatch = inputStr.match(/\d{8}/); if (dateMatch) { const dateStr = dateMatch[0]; const year = dateStr.slice(0, 4); console.log(`提取到的年份:${year}`); } else { console.log("未找到符合格式的日期"); }
进阶优化:避免误匹配
如果你的字符串里可能存在其他8位数字(不是日期),可以把正则写得更精准,只匹配合理范围内的年份(比如1900-2099):
# 只匹配以19或20开头的8位数字 date_match = re.search(r'(19|20)\d{6}', input_str)
这样就能过滤掉那些不是日期的8位数字,让提取结果更准确。
内容的提问来源于stack exchange,提问作者AlexandreG
相关产品推荐
相关产品推荐

