我使用此regex匹配多种日期格式。
(?i)\b\d{1,2}[-|–|—|\s|(?:\sde\s|\sdel\s)|\d+/](?:Ene|Enero|Feb|Febrero|Mar|Marzo|Abril|Mayo|May|Jun|Junio|Jul|Julio|Ago|Agosto|Sep|Sept|Septiembre|Oct|Octubre|Nov|Noviembre|Dic|Diciembre|\d+)[-|–|—|\s|(?:\sde\s|\sdel\s)|\d+/](?:\d{4}|\d{2})\b
但是,我不知道如何添加以前的正则表达式支持匹配这样的格式:
11 de Noviembre de 2013
23 de noviembre del 2011
11 de Noviembre del 2013
正如您在上面的正则表达式中看到的那样,我尝试使用\w(\sde\s|\sdel\s)
和(?:\sde\s|\sdel\s)
。然而它不起作用。如何匹配之前的日期案例?
答案 0 :(得分:5)
[-|–|—|\s|(?:\sde\s|\sdel\s)|\d+/]
[-|–|—|\s|(?:\sde\s|\sdel\s)|\d+/]
要求character classes []
当你想要的是groups ()
时(或者在这种情况下是非捕获组)(?:)
:
(?:-|–|—|\s|(?:\sde\s|\sdel\s)|\d+/)
(?:-|–|—|\s|(?:\sde\s|\sdel\s)|\d+/)
请参阅regex101
此外,如果您正在寻找原因:
What's the difference between () and [] in regular expression patterns?
答案 1 :(得分:0)
由于这是一个Python问题,为什么不删除 de & del &as;通过使用
发生date = date.replace('de','').replace('del','')
然后像你一样对它进行操作?