请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

[年-\] 这样写为什么会报错?

regex_str = ‘.*出生于(\d{4}[年-]\d{1,2}[月-]\d{1,2}[日-])’
[年-] 这样写为什么会报错?
图片描述

正在回答

2回答

import re
line = '张三生在1990年8月1日'
regex_str = '([\u4E00-\u9FA5]+(\d{4}[年/]\d{1,2}([月/]\d{1,2}[日/]|[月/]\d{1,2}|[月/]$|$)))'
match_obj = re.match(regex_str, line)
if match_obj:
    print(match_obj.group(2))

短横线在中括号中有特殊意义 不能随便在中括号中写“-”

0 回复 有任何疑惑可以回复我~
  • 提问者 Alllight #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-09-14 14:28:31
bobby 2020-09-09 22:52:51

你把代码贴一下 我本地运行试试

0 回复 有任何疑惑可以回复我~
  • 提问者 Alllight #1
    import re
    
    line = '张三生在1990年8月1日'
    
    regex_str = '([\u4E00-\u9FA5]+(\d{4}[年-/]\d{1,2}([月/-]\d{1,2}[日-/]|[月-/]\d{1,2}|[月-/]$|$)))'
    
    match_obj = re.match(regex_str, line)
    if match_obj:
        print(match_obj.group(1))
    
    
    我觉得可能是把[年-/]识别成了[A-Z]这种形式的问题
    回复 有任何疑惑可以回复我~ 2020-09-10 11:32:40
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信