首页 > 解决方案 > 正则表达式匹配州法规格式

问题描述

我正在尝试从法院意见中解析州法规。

在这种情况下,我试图与西弗吉尼亚州相匹配,引用通常采用以下格式之一:

W. Va. Code Ann. § 24A-2-5(a)
W.Va. Code § 15A-5-3
W.Va.Code § 22B-3-1
W. Va. Code § 15A-5-3
West Virginia Code Ann § 53-4A-7(a)

我已经得到这个正则表达式字符串部分功能:

(W\.V\.|W\.Va\.|West\sVa\.|West\.Va\.|W\. Va\.|West\sVirginia|West\.Virginia)(/s?|.?)(Code\sAnn\.|Code|Code\sAnn?)(.\s?|\s?)(ȼs|§|&#167|section|§|sect?)(\s+[0-9]+[a-zA-Z]+-[0-9a-zA-Z]+-[0-9])(\([a-z]\))?

问题在于它与上面的最后一种格式不匹配:(西弗吉尼亚州法典 Ann § 53-4A-7(a))

我也知道这可能不是最有效的方法。那么,Regex Masters 会给我一些关于我所缺少的东西的指示,以及改进它的建议。

先感谢您,

标签: regexpostgresql

解决方案


试试这个模式

W(?:\. ?Va\.|est Virginia) ?Code(?: Ann\.?)? (?:§|ȼs|&#167|section|§|sect\?) \d+[A-Z]?-\d+[A-Z]?-\d+(?:\([a-z]\))?

在此处输入图像描述

在哪里:

  • W(?:\. ?Va\.|est Virginia) ?- 匹配西弗吉尼亚州的不同格式
  • Code(?: Ann\.?)? - 将“代码”与可选的“安”匹配
  • (?:§|ȼs|&#167|section|§|sect\?) - 匹配不同格式的section关键字
  • \d+[A-Z]?-\d+[A-Z]?-\d+- 匹配部分例如1a-2b-3
  • (?:\([a-z]\))?- 匹配括号中的可选字母

推荐阅读