Python正则表达式将名称与合法形式匹配

2024-05-14 20:50:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着匹配名字和法律形式。 现在我有了这个:

[a-zA-Z]*\,\s*[[A-Z]\.]*

我需要与这些例子相匹配:

  • 银行,A
  • 银行,A.B
  • 银行,A.B.C
  • A.B.C.D.银行
  • 银行,A
  • 银行,A.B
  • …等(银行,A。。。十)

目前我只能与“Bank,A.”和“Bank,A.”匹配。你知道吗

如何更改regex,使其与以下法律术语缩写匹配?你知道吗


Tags: 银行名字形式例子regex术语bank法律
2条回答

你可以重复A-Z部分,后跟一个点1+次,然后在末尾匹配一个可选的A-Z来匹配A.B

^[a-zA-Z]+,\s(?:[A-Z]\.)+[A-Z]?$
  • ^字符串开头
  • [a-zA-Z]+匹配1+a-zA-Z
  • ,\s匹配逗号和空格字符
  • (?:Non capturing group
    • [A-Z]\.匹配A-Z和一个点
  • )+关闭非捕获组并重复1+次以匹配A.A.B.
  • [A-Z]?匹配可选的A-Z
  • $字符串结尾

Regex demo

或者在开头使用单词边界\b,在结尾使用非空白(?!\S)

\b[a-zA-Z]+,\s(?:[A-Z]\.)+[A-Z]?(?!\S)

Regex demo

如果这个模式总是一样的话,你可以试试

\w+\,\s[A-Z\.]+

请参见:https://regex101.com/r/cw0KW3/1

相关问题 更多 >

    热门问题