Regex 正则表达式匹配字符串(如果存在)

Regex 正则表达式匹配字符串(如果存在),regex,python-3.x,Regex,Python 3.x,例1: THE COMPANIES ACT (Cap 486) IT IS notified 例2: THE COMPANIES ACT (Cap. 486) Incorporations IT IS notified 我当前的正则表达式:companys ACT\n\((((?:Cap.| Cap.*?)\)(?:\nincorporates | \nincorporates)\n收到通知时仅与示例2匹配 我希望它能匹配这两个例子 您应该在(?:\nincorporates |\ni

例1:

THE COMPANIES ACT 
(Cap 486)
IT IS notified 
例2:

THE COMPANIES ACT
(Cap. 486)
Incorporations
IT IS notified 
我当前的正则表达式:
companys ACT\n\((((?:Cap.| Cap.*?)\)(?:\nincorporates | \nincorporates)\n收到通知时
仅与示例2匹配

我希望它能匹配这两个例子

您应该在
(?:\nincorporates |\nincorporates)
之后添加
(0或1匹配项),使其成为可选项。否则,第一个示例不匹配,因为您已指定要在任何情况下匹配
(?:\nincorporates |\nincorporates)

<> > <代码> nSuffs在两个NC公司中都是常见的,您可以考虑<代码>(?:\n[ii)nFrAs]?<代码> >而不是<代码>(?.

您应该在
(?:\nincorporates |\nincorporates)
之后附加
(0或1匹配项),使其成为可选项。否则,第一个示例不匹配,因为您已指定要在任何情况下匹配
(?:\nincorporates |\nincorporates)


<> > <代码> nSuffs在两个NC公司中都是常见的,您可以考虑<代码>(?:\n[ii)nFrAs]?<代码> >而不是<代码>(?这是因为最后一个括号部分是必需的,不是可选的。这是因为最后一个括号部分是必需的,而不是可选的。Additionaly,他可能会考虑使用\n((i i i)nFrand)。既然是这样shorter@Raf的确另一个字符较短:<代码> [II] < /代码>:)此外,他可能会考虑使用\n(i(i i)nNoSs)。既然是这样shorter@Raf的确另一个较短的字符:
[Ii]
:)