【发布时间】:2021-01-27 15:48:39
【问题描述】:
我正在寻找一个正则表达式来匹配一个字符串,它应该:
- 以数字开头
- 'in-between' 有 7 个数字和 2 个连字符的排列,没有 2 个连续的连字符
- 以数字、连字符、数字序列结尾
匹配:
- 01-234-5678-9
- 01234-56-78-9
- 0123-4-5678-9
- 012-345-678-9
- 01-234567-8-9
- 01-234-5678-9
- 0-12345-678-9
- 0-123-45678-9
- 0-123-45678-9
- 01-23456-78-9
- 0-123456-78-9
- 0-1234567-8-9
不匹配:
- 01-234-56789-0
- 01-234-567-8
- 01--2345678-9
- 01-2345678--9
- 0-1-23456789
- -01-2345678-9
目前,我还不太清楚如何匹配两个“中间”连字符:^\d\d{7}\d-\d$
编辑: 感谢我对这个问题的回答,我能够将其扩展到其他 question 关于 ISBN-10 和 ISBN-13...
【问题讨论】:
-
为什么
0-1-2345678-9无效? -
我的错误,刚刚纠正...
-
@YaasineDM 我回滚了你的编辑。新问题得到新帖子。你不能回去用不同的条件改变你的 OP,这会使给定的答案无效。所以,请随意打开一个新帖子。
-
谢谢@JvdV,我想知道该怎么做...我刚刚根据您的建议发布了一个新问题:stackoverflow.com/questions/65925071/…
标签: regex