python - 从(更多)复杂字符串(可能是正则表达式匹配)中提取日期字符串

标签 python regex string

我有一个看起来像'my_index-{year}' 的字符串模板。
我做了类似 string_template.format(year=year) 的事情,其中​​年份是一些字符串。结果是一些看起来像 my_index-2011 的字符串。

现在。我的问题。我有一个类似 my_index-2011 的字符串和我的模板 'my_index-{year}' 提取 {year} 可能是一种巧妙的方法> 部分?

[注意:我知道 parse library 的存在]

最佳答案

有一个名为 parse 的模块它提供了与 format() 功能相反的功能:

Parse strings using a specification based on the Python format() syntax.

>>> from parse import parse
>>> s = "my_index-2011"
>>> f = "my_index-{year}"
>>> parse(f, s)['year']
'2011'

还有一个替代选项,因为您要提取年份,所以可以使用 dateutil parser在模糊模式下:

>>> from dateutil.parser import parse
>>> parse("my_index-2011", fuzzy=True).year
2011

关于python - 从(更多)复杂字符串(可能是正则表达式匹配)中提取日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38387310/

相关文章:

Python mypy 检查 TypeVar(bound=Union[A, B]) 的返回类型不会出错 vs TypeVar(A, B) 会出错

c++ - 如何将 RapidJSON 文档序列化为字符串?

python - 使用 Python 每 15 分钟检查一次日志文件

python - 在多处理进程之间将opencv视频帧共享为Numpy数组的正确方法

python - 如何在python中将时区添加到天真的日期时间实例中

javascript - 正则表达式匹配美元,前面没有反斜杠

MySql 用正则表达式替换和更新列内容?

java - 计算 N 个数字序列中的零 - Java

c# - 无法从 'System.Collections.Generic.IEnumerable<char>' 转换为 'string'

将浮点值转换为不带小数点分隔符的字符串