问题描述
我已经有一个working example的正则表达式与大多数德国街道名称匹配。但是,我最近了解到,以下模式也是可能的:
- A 1
- K 7
- H 2
- P 1
- 我7
- E 7
- T 3
- Z 9
如何将这种模式构建到现有的Python-regex中?
^(?:[^\W\d_]+\.?|\([^\W\d_]+\.?\))(?:[- '’](?:[^\W\d_]+\.?|\([^\W\d_]+\.?\)))*$
解决方法
您可以仅使用|
添加它。看来您的模式可以大大简化:
^(?:[A-Z] \d|[^\W\d_]{2,}\.?)(?:[- '’][^\W\d_]+\.?)*$
https://regex101.com/r/WRd1jx/7
,您可以在匹配项中添加匹配的大写字符,后跟一个空格和1+个数字。
^(?:[A-Z] \d+|[^\W\d_]+\.?|\([^\W\d_]+\.?\))(?:[- '’](?:[^\W\d_]+\.?|\([^\W\d_]+\.?\)))*$