我想知道这个正则表达式是否正确用于检查字符串是否以点开头,不以点结尾并且在任何地方都包含至少一个点但不是开始或结束:
我的问题是,我无法确定如何连续检查是否有2个点。
/ ^([^。])+([。])+。*([^。])$ /
答案 0 :(得分:4)
似乎你需要使用
^[^.]+(?:\.[^.]+)+$
请参阅regex demo
<强>详情:
^
- 字符串开头[^.]+
- 除.
以外的1个字符(因此,第一个字符不能为.
)(?:\.[^.]+)+
- 1个或更多(因此,字符串中的点必须至少出现一次)序列:
\.
- 一个点[^.]+
- .
以外的1个字符(+
量词使得.
以外的字符在点后至少出现一次,因此无法使用将字符串与末端的2个点匹配)$
- 字符串结束。答案 1 :(得分:2)
您已经关闭,请尝试使用:
^[^.]+(?:\.[^.]+){2,}$
它匹配具有2个或更多点的字符串,但不是在开头或结尾处。
如果你想要一个或多个点:
^[^.]+(?:\.[^.]+)+$
如果你想要一个或两个点:
^[^.]+(?:\.[^.]+){1,2}$