Regex 赢得';不允许有2个或更多点的匹配?

Regex 赢得';不允许有2个或更多点的匹配?,regex,regex-negation,regex-lookarounds,Regex,Regex Negation,Regex Lookarounds,现在我有一个字符串列表,其中一些字符串中有连续的点。我想匹配所有东西,除了那些带连续点的字符串。例如: fo.o.ba.r = legal --> fo..obar != legal 这是我试过使用的正则表达式,但它似乎不像我想象的那样工作 (?!\.{2,}) 这里有人能帮我找到正确的路吗?谢谢大家! 从字符串开始到字符串结束,重复组内的任何字符,同时对两个点使用负前瞻: ^(?:(?!\.{2}).)+$ 您可以使用一个负向前看来从字符串开始断言右边的内容不包含2个点: ^(?。

现在我有一个字符串列表,其中一些字符串中有连续的点。我想匹配所有东西,除了那些带连续点的字符串。例如:

fo.o.ba.r = legal --> fo..obar != legal
这是我试过使用的正则表达式,但它似乎不像我想象的那样工作

(?!\.{2,})

这里有人能帮我找到正确的路吗?谢谢大家!

从字符串开始到字符串结束,重复组内的任何字符,同时对两个点使用负前瞻:

^(?:(?!\.{2}).)+$

您可以使用一个负向前看来从字符串开始断言右边的内容不包含2个点:

^(?。*.{2})。+$

这将符合:

  • ^
    断言字符串的开头
  • (?!
    负前瞻
    • *
      匹配任意字符0+次
    • \.{2}
      匹配一个点2次
  • 关闭反向前瞻
  • +
    匹配任意字符1+次
  • $
    断言字符串的结尾