python - 正则表达式如何匹配一致的标志?

标签 python regex

我正在使用 python 正则表达式来匹配以下形式的日期:1999-01-01 或 1999.1.1 或 1999-1-1。但不是像 1999.1-1 或 1999-1.1 这样的。年月日之间的符号必须一致。我使用以下代码来完成它,这很困惑。有更好的方法吗?

import regex as re
re.fullmatch('(((((19|20)\d\d-(([1-9])|((0[1-9]|1[012])))-(?p)([1-9]|(0[1-9]|[12][0-9]|3[01]))(\.)?))))|' \
    '(((((19|20)\d\d\/(([1-9])|((0[1-9]|1[012])))/(?p)([1-9]|(0[1-9]|[12][0-9]|3[01]))(\.)?))))|'\
    '(((((19|20)\d\d\.(([1-9])|((0[1-9]|1[012])))\.(?p)([1-9]|(0[1-9]|[12][0-9]|3[01]))(\.)?))))','1999.1.1')

最佳答案

你可以使用

\d{4}([-/.])\d{1,2}\1\d{1,2}

参见 a demo on regex101.com .这里的线索是使用反向引用。

关于python - 正则表达式如何匹配一致的标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072603/

相关文章:

php - 使用正则表达式和 php 从 html 中提取 javascript 对象

javascript - 使用 JavaScript 验证 PIN - SyntaxError : Unexpected token )

ruby - 如何检查字符串是否包含任何形式的撇号而不仅仅是单引号和 ruby

python - pandas - 与 matplotlib 进行绘图集成

python - 使用 Pytorch LSTM 模块时维度不匹配

python - 如何从 Pandas 的数据框中提取单元格值

c# - 使用平衡组的正则表达式

JavaScript : parse float with string prefix in both start and end

Python:subprocess.Popen() 的第一个实例非常慢

python - PyCharm 远程调试