首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >德国税号的Python

德国税号的Python
EN

Stack Overflow用户
提问于 2020-10-23 08:22:45
回答 1查看 262关注 0票数 1

我需要帮助来完成我对德国税号的要求。这些数字的格式取决于状态。我几乎可以和所有的州媲美。剩下的国家只有黑森和不来梅。问题是,它们与其他号码非常相似(比如电话号码)。在我的演示中有一个完整的例子。

也许你能帮我匹配所有相关的数字。

这是我的准则:

代码语言:javascript
复制
(?:\d{3}\s?/\s?\d{3}\s?/\s?\d{5})|(?:\d{2}\s?/\s?\d{3}\s?/\s?\d{5})|(?:\d{3}\s?/\s?\d{4}\s?/\s?\d{4})|(?:\d{5}\s?/\s?\d{5}\b)|(\d{11})|(\d{10})

这些是为完成所有状态的正则表达式而留下的关键模式:

代码语言:javascript
复制
Hessen: 02581580201
025 815 80201

Bremen: 7581508152
75 815 08152
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-23 08:47:51

您可以在可选空格字符之间匹配/,也可以使用(?:\s?/\s?|\s)匹配空白字符。

末端的零件可缩短为\d{10,11}

前2部分可缩短为d{2,3}\s?/\s?\d{3}\s?/\s?\d{5}

代码语言:javascript
复制
\b(?:\d{2,3}(?:\s?/\s?|\s)\d{3}(?:\s?/\s?|\s)\d{5}|\d{3}(?:\s?/\s?|\s)\d{4}(?:\s?/\s?|\s)\d{4}|\d{5}(?:\s?/\s?|\s)\d{5}|\d{10,11})\b

解释

  • \b用于防止匹配成为更大单词的一部分的单词边界
  • (?:非捕获群
    • \d{2,3}(?:\s?/\s?|\s)\d{3}(?:\s?/\s?|\s)\d{5}匹配2-3位数字,然后匹配3位数字和5位数字。
    • |
    • \d{3}(?:\s?/\s?|\s)\d{4}(?:\s?/\s?|\s)\d{4}匹配3位、4位和4位
    • |
    • \d{5}(?:\s?/\s?|\s)\d{5}|\d{10,11}匹配5位数字、5位数字和10位或11位数字

  • )闭非捕获群
  • \b A字界

Regex演示

如果数字之间的部分应该匹配,还可以使用带有反向引用的捕获组来匹配第二部分中已经捕获的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64496457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档