Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 23 additions & 10 deletions acf/acf_parse-docx-to-xml.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ def write_error(details, error_msg):
def prep_cell_text(raw_txt):

#clean string--remove curly quotes and zero-width spaces
txt_step_1 = raw_txt.replace('’', "'").replace('“', '"').replace('”', '"').replace('\u200b', '').replace("\u2009", " ")
txt_step_1 = raw_txt.replace('’', "'").replace('“', '"').replace('”', '"').replace('\u200b', '').replace("\u2009", " ").replace('•', '')

#split into list of strings, trim white space from each string
txt_step_2 = [item.strip() for item in txt_step_1.splitlines()]
Expand Down Expand Up @@ -275,10 +275,14 @@ def parse_requirement_blocks(data, cell, temp_list, details, parent_position):
current_position = f"{parent_position} - {state_code}"

# Parse entities (as a list)
entities_match = entities_pattern.match(data_slice[1])
if entities_match:
entities_text = entities_match.group(1)
record['entities'] = [entity.strip() for entity in entities_text.split(";")]
try:
entities_match = entities_pattern.match(data_slice[1])
if entities_match:
entities_text = entities_match.group(1)
record['entities'] = [entity.strip() for entity in entities_text.split(";")]
except IndexError:
print(data_slice)
sys.exit(1)

# Parse tags (as a list)
tags_match = tags_pattern.match(data_slice[2])
Expand Down Expand Up @@ -314,16 +318,25 @@ def parse_to_dict(list_of_strings, cell, search_term):

# if found, assign values to dictionary
temp_dict = {
"current_position": t,
"number": t.split(' ', 1)[1].strip(),
"current_position": t.strip(),
"name": list_of_strings[t_idx+1],
"source": find_source_link(cell, list_of_strings[t_idx+1], t),
"start_idx": t_idx,
"end_idx": t_idx+1
}

# we also need to get a form of the name to use as a dict key. Just do this for everything, but it's only used with Titles
temp_dict['title_key'] = f"{temp_dict["current_position"]}-{temp_dict["name"]}".replace(' ', '').lower()
# NOTE: we have at least one state that does not include Title #'s. Add handling for this...
try:
temp_dict['number'] = t.split(' ', 1)[1].strip()
except IndexError:
temp_dict['number'] = None

# we also need to get a form of the name to use as a dict key. Just do this for everything, but it's only used with Titles. We have to take additional steps in case this state doesn't include Title Numbers
if temp_dict['current_position'].lower() == search_term[0].lower():
temp_dict['current_position'] = f"{temp_dict['current_position']} {temp_dict['name']}"
temp_dict['title_key'] = temp_dict["current_position"]
else:
temp_dict['title_key'] = f"{temp_dict["current_position"]}-{temp_dict["name"]}".replace(' ', '').lower()

#note that if this record uses multiple 'Part' names, we have to see if the altName (i.e., the second partName) is used
if len(search_term) > 1:
Expand Down Expand Up @@ -571,7 +584,7 @@ def parse_tables(doc, details, record_data, object_type):
break

for index, item in enumerate(statutes):
if any(item.startswith(phrase) for phrase in ['Requirements related to', 'Requirements for ', 'Regulations regarding ']):
if any(item.startswith(phrase) for phrase in ['Requirements related ', 'Requirements for ', 'Regulations regarding ']):
req_index = index
if "Regulations" in statutes[index]:
found_regs = True
Expand Down
26 changes: 18 additions & 8 deletions acf/acf_parse_config.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
{
"input_doc": "C:/testing/ACF/Texas/Texas_011723_CORrev - ag(MU).docx",
"out_dir": "C:/testing/ACF/Texas",
"input_doc": "C:/ACF/FINAL APPROVED STATE RECORDS/Nevada/Nevada_Copy.docx",
"out_dir": "C:/ACF/FINAL APPROVED STATE RECORDS/Florida",
"xsd_file": "schema_final.xsd",
"xsl_file": "statetemplatev5.xsl",
"category": "true",
"category": "false",
"titleName": "Title",
"subtitleName": "Subtitle",
"subtitleName": "",
"articleName": "Chapter",
"partName": ["Subchapter"],
"partName": [],
"subPartName": "",
"titleContent": "false",
"state": "Texas",
"state_code_pattern": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(TX\\s(?:Hum Res Code|Govt Code|Health & Safety Code|Fam Code)\\s\\u00A7\\s[\\d\\.]+)\\)?$",
"statute_pattern": "^(TX\\s(?:Hum Res Code|Govt Code|Health & Safety Code|Fam Code)\\s\u00A7\\s[\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"state": "Nevada",
"state_code_pattern": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(FLA\\.\\sSTAT\\.\\s\\u00A7\\s\\d+\\.\\d+)\\)?$",
"statute_pattern": "^(FLA\\.\\sSTAT\\.\\s\\u00A7\\s\\d+\\.\\d+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"patterns": {
"base": "(.+)\\s?\\u2013\\s?(.*)\\s+",
"Alabama": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(AL\\sCode\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Arizona": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(AZ\\sRev\\sStat\\s\\u00A7\\s\\d+-[-\\w\\.]+)\\)?$",
"Colorado": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(CO\\sCode\\s\\u00A7\\s\\[-\\d\\.]+)\\)?$",
"Connecticut": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(CT\\sGen\\sStat\\s\\u00A7\\s[-\\w]+)\\)?$",
"Delaware": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+\\sDE\\sCode\\s\\u00A7\\s[-\\w]+)\\)?$",
"Flandreau": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(Flandreau\\sSantee\\sSioux\\sTribal\\sCode\\s\\u00A7\\s[-\\d]+)\\)?$",
Expand All @@ -25,9 +26,11 @@
"Illinois": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+\\sILCS\\s[-\\d\\.\\/]+)\\)?$",
"Indiana": "(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(IN Code\\s\\u00A7\\s[-\\.\\w]+)\\)?$",
"Kentucky": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(K\\.Y\\.\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Maine": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(M\\.R\\.S\\.\\s[-\\w]+\\s\\u00A7\\s[-\\w]+)\\)?$",
"Maryland": "(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MD Code,?\\s(?:Family Law|Local Government|General Provisions|Health\\s*[-\\u2013]\\s*General|Human Services),?\\s\u00A7\\s\\d+(?:\\.\\d+)?-[-–\\.\\w]*)\\)?$",
"Massachusetts": "(.+)\\s?\\u2013\\s?(.*)\\s+\\(?(MA Gen L.+\\d+[A-Za-z]*)\\s*\\)?$",
"Michigan": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MI\\sComp\\sLaws\\s\\u00A7\\s[\\w\\.]+)\\)?$",
"Minnesota": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MN\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Mississippi": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MS\\sCode\\s\\u00A7\\s?[-\\w\\.]+)\\)?$",
"Navajo Nation": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+\\sN\\.N\\.C\\.\\s\\u00A7\\s\\d+),\\sp\\.\\d+\\)?$",
"New Jersey": "(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(NJ Rev Stat \\u00A7 \\d+:\\d+[-\\.\\w]*)\\)?$",
Expand All @@ -41,13 +44,16 @@
"South Carolina": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\((SC\\sCode\\s\\u00A7\\s[-\\d]+)\\)\\.?$",
"Tennessee": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(TN Code\\s\\u00A7\\s[-\\.\\w]+)\\)?$",
"Texas": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(TX\\s(?:Hum Res Code|Govt Code|Health & Safety Code|Fam Code)\\s\\u00A7\\s[\\d\\.]+)\\)?$",
"Vermont": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+[A-Z]?\\sV\\.S\\.A\\.\\s\\u00A7\\s[-\\w]+)\\)?$",
"Virginia": "^(VA Code\\s\\u00A7\\s+\\d+(?:\\.\\d+)?-\\d+(?:\\.\\d+)?(?::\\d+)?)\\s+[\\u2013\\u2014]\\s+(.*)$",
"Wisconsin": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(WI\\sStat\\s\\u00A7\\s[\\d\\.]+)\\)?$",
"Wyoming": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(WY\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Yurok": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(YTC\\s[\\d\\.]+)\\)?$"
},
"state_statutes": {
"Alabama": "^(AL\\sCode\\s\\u00A7\\s[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Arizona": "^(AZ\\sRev\\sStat\\s\\u00A7\\s\\d+-[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Colorado": "^(CO\\sCode\\s\\u00A7\\s\\[-\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Connecticut": "^(CT\\sGen\\sStat\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Delaware": "^(\\d+\\sDE\\sCode\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Flandreau": "^(Flandreau\\sSantee\\sSioux\\sTribal\\sCode\\s\\u00A7\\s[-\\d]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
Expand All @@ -56,9 +62,11 @@
"Illinois": "^(\\d+\\sILCS\\s[-\\d\\.\\/]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Indiana": "^(IN Code\\s\\u00A7\\s[-\\.\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Kentucky": "^(K\\.Y\\.\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Maine": "^(M\\.R\\.S\\.\\s[-\\w]+\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Maryland": "^(MD Code,?\\s(?:Family Law|Local Government|General Provisions|Health\\s*[-\\u2013]\\s*General|Human Services),?\\s\u00A7\\s\\d+(?:\\.\\d+)?-[-\\.\\w]*)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Massachusetts": "^(MA Gen L.+\\d+[A-Za-z]*)\\s?[\\u2013\\u2014]\\s?(.*)",
"Michigan": "^(MI\\sComp\\sLaws\\s\\u00A7\\s[\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Minnesota": "^(M\\.R\\.S\\.\\s[-\\w]+\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Mississippi": "^(MS\\sCode\\s\\u00A7\\s?[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Navajo Nation": "^(\\d+\\sN\\.N\\.C\\.\\s\\u00A7\\s\\d+),\\sp\\.\\d+\\s+[-\\u2013\\u2014]\\s+(.*)$",
"New Jersey": "^(NJ Rev Stat \\u00A7 \\d+:\\d+[-\\.\\w]*)\\s+[\u2013\u2014]\\s+(.*)$",
Expand All @@ -71,8 +79,10 @@
"South Carolina": "^(SC\\sCode\\s\\u00A7\\s[-\\d]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Tennessee": "^(TN Code\\s\\u00A7\\s[-\\.\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Texas": "^(TX\\s(?:Hum Res Code|Govt Code|Health & Safety Code|Fam Code)\\s\u00A7\\s[\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Vermont": "^(\\d+[A-Z]?\\sV\\.S\\.A\\.\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Virginia": "(.+?)\\s?\\u2013\\s?(.*?)\\s+\\(?(VA Code\\s\\u00A7\\s+\\d+(?:\\.\\d+)?-\\d+(?:\\.\\d+)?(?::\\d+)?)\\)?$",
"Wyoming": "^(WY\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Wisconsin": "^(WI\\sStat\\s\\u00A7\\s[\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Yurok": "^(YTC\\s[\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$"
}
}
46 changes: 41 additions & 5 deletions acf/state_configs/AZ_acf_parse_config.json
Original file line number Diff line number Diff line change
@@ -1,50 +1,86 @@
{
"input_doc": "C:/testing/ACF/Arizona/Arizona_test.docx",
"out_dir": "C:/testing/ACF/Arizona",
"input_doc": "C:/ACF/FINAL APPROVED STATE RECORDS/Arizona/Arizona_Copy.docx",
"out_dir": "C:/ACF/FINAL APPROVED STATE RECORDS/Arizona",
"xsd_file": "schema_final.xsd",
"xsl_file": "statetemplatev5.xsl",
"category": "false",
"titleName": "Title",
"subtitleName": "",
"articleName": "Chapter",
"partName": "",
"partName": [],
"subPartName": "",
"titleContent": "false",
"state": "Arizona",
"state_code_pattern": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(AZ\\sRev\\sStat\\s\\u00A7\\s\\d+-[-\\w\\.]+)\\)?$",
"statute_pattern": "^(AZ\\sRev\\sStat\\s\\u00A7\\s\\d+-[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"patterns": {
"base": "(.+)\\s?\\u2013\\s?(.*)\\s+",
"Alabama": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(AL\\sCode\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Arizona": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(AZ\\sRev\\sStat\\s\\u00A7\\s\\d+-[-\\w\\.]+)\\)?$",
"Connecticut": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(CT\\sGen\\sStat\\s\\u00A7\\s[-\\w]+)\\)?$",
"Delaware": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+\\sDE\\sCode\\s\\u00A7\\s[-\\w]+)\\)?$",
"Flandreau": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(Flandreau\\sSantee\\sSioux\\sTribal\\sCode\\s\\u00A7\\s[-\\d]+)\\)?$",
"Florida": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(FLA\\.\\sSTAT\\.\\s\\u00A7\\s\\d+\\.\\d+)\\)?$",
"Idaho": "(.+)\\s?\\u2013\\s?(.*)\\s+\\(?(I\\.C\\. Stat\\s.+\\d+[A-Za-z]*)\\)?$",
"Illinois": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+\\sILCS\\s[-\\d\\.\\/]+)\\)?$",
"Indiana": "(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(IN Code\\s\\u00A7\\s[-\\.\\w]+)\\)?$",
"Kentucky": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(K\\.Y\\.\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Maine": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(M\\.R\\.S\\.\\s[-\\w]+\\s\\u00A7\\s[-\\w]+)\\)?$",
"Maryland": "(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MD Code,?\\s(?:Family Law|Local Government|General Provisions|Health\\s*[-\\u2013]\\s*General|Human Services),?\\s\u00A7\\s\\d+(?:\\.\\d+)?-[-–\\.\\w]*)\\)?$",
"Massachusetts": "(.+)\\s?\\u2013\\s?(.*)\\s+\\(?(MA Gen L.+\\d+[A-Za-z]*)\\s*\\)?$",
"Michigan": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MI\\sComp\\sLaws\\s\\u00A7\\s[\\w\\.]+)\\)?$",
"Minnesota": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MN\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Mississippi": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(MS\\sCode\\s\\u00A7\\s?[-\\w\\.]+)\\)?$",
"Navajo Nation": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+\\sN\\.N\\.C\\.\\s\\u00A7\\s\\d+),\\sp\\.\\d+\\)?$",
"New Jersey": "(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(NJ Rev Stat \\u00A7 \\d+:\\d+[-\\.\\w]*)\\)?$",
"New York": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(NY\\s.+\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Nevada": "(.+)\\s?\\u2013\\s?(.*)\\s+\\(?(NRS[\\s\\.][A-Za-z0-9\\.]+)\\)?$",
"North Dakota": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(N\\.D\\.\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Ohio": "(.+?)\\s?\\u2013\\s?(.*?)\\s+\\(?(Ohio Rev Code\\s\\u00A7\\s+\\d+(?:\\.\\d*)?)\\)?$",
"Oklahoma": "(.+?)\\s?\\u2013\\s?(.*?)\\s+\\(?(\\d+[A-Za-z]?\\sOK STAT \\u00A7\\s[\\d-]+([A-Za-z0-9\\-\\.]+)?)\\)?$",
"Oregon": "(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(ORS\\s+[A-Za-z0-9\\.]+)\\)?$",
"Rhode Island": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(R\\.I\\.\\sStat\\s\\u00A7\\s[-\\d\\.]+)\\)?$",
"South Carolina": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\((SC\\sCode\\s\\u00A7\\s[-\\d]+)\\)\\.?$",
"Tennessee": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(TN Code\\s\\u00A7\\s[-\\.\\w]+)\\)?$",
"Virginia": "^(VA Code\\s\\u00A7\\s+\\d+(?:\\.\\d+)?-\\d+(?:\\.\\d+)?(?::\\d+)?)\\s+[\\u2013\\u2014]\\s+(.*)$"
"Texas": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(TX\\s(?:Hum Res Code|Govt Code|Health & Safety Code|Fam Code)\\s\\u00A7\\s[\\d\\.]+)\\)?$",
"Vermont": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(\\d+[A-Z]?\\sV\\.S\\.A\\.\\s\\u00A7\\s[-\\w]+)\\)?$",
"Virginia": "^(VA Code\\s\\u00A7\\s+\\d+(?:\\.\\d+)?-\\d+(?:\\.\\d+)?(?::\\d+)?)\\s+[\\u2013\\u2014]\\s+(.*)$",
"Wisconsin": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(WI\\sStat\\s\\u00A7\\s[\\d\\.]+)\\)?$",
"Wyoming": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(WY\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\)?$",
"Yurok": "^(.+?)\\s?\\u2013\\s?(.*?)\\s?\\(?(YTC\\s[\\d\\.]+)\\)?$"
},
"state_statutes": {
"Alabama": "^(AL\\sCode\\s\\u00A7\\s[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Arizona": "^(AZ\\sRev\\sStat\\s\\u00A7\\s\\d+-[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Connecticut": "^(CT\\sGen\\sStat\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Delaware": "^(\\d+\\sDE\\sCode\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Flandreau": "^(Flandreau\\sSantee\\sSioux\\sTribal\\sCode\\s\\u00A7\\s[-\\d]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Florida": "^(FLA\\.\\sSTAT\\.\\s\\u00A7\\s\\d+\\.\\d+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Idaho": "^(I\\.C\\. Stat\\s.+\\d+[A-Za-z]*)\\s?[\\u2013\\u2014]\\s?(.*)",
"Illinois": "^(\\d+\\sILCS\\s[-\\d\\.\\/]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Indiana": "^(IN Code\\s\\u00A7\\s[-\\.\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Kentucky": "^(K\\.Y\\.\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Maine": "^(M\\.R\\.S\\.\\s[-\\w]+\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Maryland": "^(MD Code,?\\s(?:Family Law|Local Government|General Provisions|Health\\s*[-\\u2013]\\s*General|Human Services),?\\s\u00A7\\s\\d+(?:\\.\\d+)?-[-\\.\\w]*)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Massachusetts": "^(MA Gen L.+\\d+[A-Za-z]*)\\s?[\\u2013\\u2014]\\s?(.*)",
"Michigan": "^(MI\\sComp\\sLaws\\s\\u00A7\\s[\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Minnesota": "^(M\\.R\\.S\\.\\s[-\\w]+\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Mississippi": "^(MS\\sCode\\s\\u00A7\\s?[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Navajo Nation": "^(\\d+\\sN\\.N\\.C\\.\\s\\u00A7\\s\\d+),\\sp\\.\\d+\\s+[-\\u2013\\u2014]\\s+(.*)$",
"New Jersey": "^(NJ Rev Stat \\u00A7 \\d+:\\d+[-\\.\\w]*)\\s+[\u2013\u2014]\\s+(.*)$",
"New York": "^(NY\\s.+\\s\\u00A7\\s[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"North Dakota": "^(N\\.D\\.\\sStat\\s\\u00A7\\s[-\\w\\.\\s\\(\\)]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Oklahoma": "^(\\d+[A-Za-z]?\\sOK STAT \\u00A7\\s[\\d-]+[A-Za-z0-9\\-\\.]+)\\s?[\\u2013\\u2014]\\s?(.*)",
"Ohio": "^(Ohio Rev Code\\s\\u00A7\\s+\\d+(?:\\.\\d*-)?)\\s+[\u2013\u2014]\\s+(.*)",
"Oregon": "^(ORS\\s+[A-Za-z0-9\\.]+)\\s+[\\u2013\\u2014]\\s+(.*)$",
"Rhode Island": "^(R\\.I\\.\\sStat\\s\\u00A7\\s[-\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"South Carolina": "^(SC\\sCode\\s\\u00A7\\s[-\\d]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Tennessee": "^(TN Code\\s\\u00A7\\s[-\\.\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Virginia": "(.+?)\\s?\\u2013\\s?(.*?)\\s+\\(?(VA Code\\s\\u00A7\\s+\\d+(?:\\.\\d+)?-\\d+(?:\\.\\d+)?(?::\\d+)?)\\)?$"
"Texas": "^(TX\\s(?:Hum Res Code|Govt Code|Health & Safety Code|Fam Code)\\s\u00A7\\s[\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Vermont": "^(\\d+[A-Z]?\\sV\\.S\\.A\\.\\s\\u00A7\\s[-\\w]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Virginia": "(.+?)\\s?\\u2013\\s?(.*?)\\s+\\(?(VA Code\\s\\u00A7\\s+\\d+(?:\\.\\d+)?-\\d+(?:\\.\\d+)?(?::\\d+)?)\\)?$",
"Wyoming": "^(WY\\sStat\\s\\u00A7\\s[-\\w\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Wisconsin": "^(WI\\sStat\\s\\u00A7\\s[\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$",
"Yurok": "^(YTC\\s[\\d\\.]+)\\s+[-\\u2013\\u2014]\\s+(.*)$"
}
}
Loading