This code is copyrighted and may not be copied, under risk of legal action.
Tento kód je chráněn autorským právem a nesmí být kopírován, pod rizikem právních kroků.
#!/usr/bin/env python3
import re
def test_author_regex():
author_regex = r'''(?<!["‘’“”„‟])([A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ](\.| |\. )[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ](\.| |\. )(Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+|[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ](\.| |\. )(Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+|[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ] (Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+|(Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+ (Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+|
(Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+ (Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+ (Ma?c|O['’])?[A-ZÁČĎÉĚÍŇÓŘŠŤÚÝŽ][a-záčďéěíňóřšťúůýž]+)(?!["‘’“”‟])'''
pattern = re.compile(author_regex)
variants = [
" J A Dowie ",
" J. A. Dowie ",
" J Dowie ",
" J. Dowie ",
" JA Dowie ",
" John Dowie ",
" Alexander Dowie ",
" John Alexander Dowie ",
" W S O'Neill ",
" W. S. O'Neill ",
" William O'Neill ",
" William S. O'Neill ",
" William S O’Neill ",
" William S. O’Neill ",
" A C MacIntyre ",
" A. C. MacIntyre ",
" Alasdair MacIntyre ",
" Alasdair C. MacIntyre ",
" Alasdair C MacIntyre ",
" A C McIntyre ",
" A. C. McIntyre ",
" Alasdair McIntyre ",
" Alasdair C. McIntyre ",
" Alasdair C McIntyre "
]
print("=== Výsledky testu author_regex ===")
for v in variants:
match = pattern.search(v)
if match:
print(f"{v!r:25} -> MATCHED: {match.group(0)!r}")
else:
print(f"{v!r:25} -> NOT matched")
if __name__ == "__main__":
test_author_regex()
Žádné komentáře:
Okomentovat