python正则表达式匹配可选的方括号

use*_*875 6 python regex brackets optional square-bracket

我有以下字符串:

1 "R J BRUCE & OTHERS V B J & W L A EDWARDS And Ors CA CA19/02 27 February 2003",     
2 "H v DIRECTOR OF PROCEEDINGS [2014] NZHC 1031 [16 May 2014]",  
3 '''GREGORY LANCASTER AND JOHN HENRY HUNTER V CULLEN INVESTMENTS LIMITED AND  
ERIC JOHN WATSON CA CA51/03 26 May 2003''' 
Run Code Online (Sandbox Code Playgroud)

我试图找到一个匹配所有这些的正则表达式。我不知道如何匹配字符串末尾日期周围的可选方括号,例如 [2014 年 5 月 16 日]。

casename = re.compile(r'(^[A-Z][A-Za-z\'\(\) ]+\b[v|V]\b[A-Za-z\'\(\) ]+(.*?)[ \[ ]\d+    \w+ \d\d\d\d[\] ])', re.S) 
Run Code Online (Sandbox Code Playgroud)

最后的日期正则表达式只匹配方括号中日期的情况,而不匹配没有方括号的情况。

感谢所有回答的人。@Matt Clarkson 我试图匹配的是更大文本中的司法决定“处理”。这些句柄中有很大的变化,但它们都从一行的开头开始,在派对名称和末尾的日期之间有“v”表示 vs。大多数情况下,各方的名称都以大写字母表示,但并非唯一。我试图每个文档只有一个匹配项并且没有误报。

Dal*_*rzo 2

如何使方括号可选,可以这样实现:

[\[]*有了它,就可以选择* 打开[

如果可以的话,我有一些建议:

  • \d\d\d\d也可以这样表达\d{4}

  • [v|V]在正则表达式中,里面的内容[]已经是一个或另一个|不是必需的[vV]

这是在线演示