德国门牌号码的正则表达式

PPa*_*ker 3 regex validation

查找指定德国门牌号码的正则表达式:

\n\n

有效门牌号:

\n\n
    \n
  • 25
  • \n
  • 25 一个
  • \n
  • 25b
  • \n
  • 25-ab
  • \n
  • 12-14日
  • \n
  • 1
  • \n
  • 9
  • \n
  • 21
  • \n
  • 1a
  • \n
  • 121 乙
  • \n
  • 25A
  • \n
  • 25 一个
  • \n
\n\n

无效门牌号:

\n\n
    \n
  • 1个1
  • \n
  • 1a1
  • \n
  • 12ab12
  • \n
  • 0
  • \n
  • \n
  • 0a
  • \n
  • 00a
  • \n
  • \n
  • 00 一个
  • \n
  • 13\xc3\xa0\xc3\xa2\xc3\xa4\xc3\xa8\xc3\xa9\xc3\xaa\xc3\xab
  • \n
\n\n

最后一个示例排除了所有非拉丁字符

\n\n

我的正则表达式与应有的方式不匹配:

\n\n
\\d+(\\s|-)?\\w*$\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑:抱歉,我不得不更改上面的示例!请看一看!

\n

Jvd*_*vdV 5

做出假设(因为您没有提供这些),这也应该排除诸如12-a112-1a12-01之类的模式12-A1。如果是这样,那么也许:

^[1-9]\d*(?:[ -]?(?:[a-zA-Z]+|[1-9]\d*))?$
Run Code Online (Sandbox Code Playgroud)

查看在线演示


  • ^- 开始弦锚。
  • [1-9]\d*- 1-9 范围内的单个数字,后跟零个或多个数字。
  • (?:- 第一个非捕获组。
    • [ -]?- 可选的空格或连字符。
    • (?:- 第二非捕获组。
      • [a-zA-Z]+|[1-9]\d*- a-zA-Z 中的一个或多个字符 1-9 范围内的单个数字,后跟零个或多个数字。
    • )- 关闭第二个非捕获组
  • )- 关闭第一个非捕获组
  • ?- 可选的第一个非捕获组(允许单位数字)。
  • $- 结束弦锚。

正则表达式可视化