【发布时间】:2019-02-28 23:37:04
【问题描述】:
我正在尝试开发一个正则表达式,它将采用以下格式:
date: 1:10 #7 (correct)
date: 1:10 (correct)
1:10 #7 (correct)
13.01.06 (incorrect)
这是我在 pythex 上开发的正则表达式:
(date)? ?\D? ?(1|4) ?(:|-|\.) ?[-+]?[0-9]+( ?(#) ?[a-zA-Z0-9]?)?
我在使用 OCR 的 Python 项目中工作,因此有时 1 到 10 之间的“:”翻译不正确。你们有更好的方法来解决正则表达式问题吗?
【问题讨论】:
-
这行得通吗(日期)? ?\D:? ?(1|4) ?(:|-|.) ?[-+]?[0-9]+( ?(#) ?[a-zA-Z0-9]?)?
-
是的,这行得通!!!你是怎么想出来的?
-
您可以在正则表达式中放置固定的字符以匹配。我觉得你需要:在你所有的字符串中,所以它应该是表达式中的强制字符。当您在 D 之后放置 : 表示在数字之后必须匹配 :,如果不是,则正则表达式匹配将失败。这就是第一个字符串不匹配的原因。
标签: regex python-3.x ocr