【发布时间】:2009-11-05 08:49:18
【问题描述】:
我在 URL 中有以下模式。
- 约翰·史密斯
- 约翰.史密斯.1
- 约翰·艾尔-史密斯
- John.al-smith.1
- John.Smith.Al-Caboon
如果第一个 (.) 是强制性的,并且在第一个 (.) 前后至少有一个字符,则其余内容(数字、连字符和第二个 (.))是可选的。
我创建了以下正则表达式:
^\w+.\w+-*\w*.?\d*\w*-*\w*
虽然它成功匹配了上述所有模式,但它也匹配了一些不需要的模式,例如:
- “login”(没有强制性的第一个点)
- “users/john”(带有不想要的 / 并且没有强制性的第一个点)
- “1234”(无效,模式必须以字符开头)
我在这里做错了什么?
【问题讨论】:
-
你如何定义角色? J1hn.Smith 有效吗?
-
你应该用反斜杠转义点。现在它是一个通配符,这可以解释为什么一些不需要的字符串也匹配模式。
-
@Dominic yeh、j1hn.smithy 和 1jhn.smith 将是有效的。
标签: regex