不允许连续点的正则表达式

Mig*_*ura 6 regex

我有一个正则表达式,允许字母数字,下划线和点,但不允许连续的点:

^(?!.*?[.]{2})[a-zA-Z0-9_.]+$
Run Code Online (Sandbox Code Playgroud)

现在,我还需要在字符串的第一个和最后一个字符中允许点。

我怎样才能做到这一点?

anu*_*ava 7

您可以像这样将其与其他前瞻一起使用:

^(?!\.)(?!.*\.$)(?!.*?\.\.)[a-zA-Z0-9_.]+$
Run Code Online (Sandbox Code Playgroud)
  • (?!\.)- .开始时不允许
  • (?!.*?\.\.) -不允许连续2个点
  • (?!.*\.$)-不允许.结尾

  • 只是想指出,这可以写得更短,如 `^(?!\.)(?!.*\.$)(?!.*?\.\.)[\w.]+$` (2认同)