查找指定德国门牌号码的正则表达式:
\n\n有效门牌号:
\n\n无效门牌号:
\n\n最后一个示例排除了所有非拉丁字符
\n\n我的正则表达式与应有的方式不匹配:
\n\n\\d+(\\s|-)?\\w*$\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:抱歉,我不得不更改上面的示例!请看一看!
\n做出假设(因为您没有提供这些),这也应该排除诸如12-a1、12-1a和12-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 范围内的单个数字,后跟零个或多个数字。)- 关闭第二个非捕获组)- 关闭第一个非捕获组?- 可选的第一个非捕获组(允许单位数字)。$- 结束弦锚。