Je dirais /^[^.]*(\.[^.]*)?$/ à priori, modulo les particularités du langage que vous utilisez (la c'est du pcre)
EDIT: Ah, pas directement suivi d'un autre point /^[^.]*(\.[^.]+)*\.?$/ alors, ou bien, solution avec du lookahead, /([^.]|(\.(?!\.)))*$/
Ça répond OK si la chaine est vide, mais c'est facile a adapter si on veut le contraire /([^.]|(\.(?!\.)))+$/ par exemple
Explication de [^.]|(\.(?!\.))
[^.] ou bien (\.(?!\.))
Un caractère autre que . ou bien (\.(?!\.))
Un caractère autre que . ou bien un point suivi d'un contexte décrit par (?!\.) [contexte car en cas de capture de chaine matchée, il n'est pas dedans]
Un caractère autre que . ou bien un point suivi du contexte "pas (! pour la négation) un point"
donc [^.]|(\.(?!\.)) matche un (seul) caractère qui est soit pas un point, soit un point, qui ne doit alors pas être suivi d'un point. CQFD.
A+,
Message édité par gilou le 03-09-2021 à 15:06:25
---------------
There's more than what can be linked! -- Le capitaine qui ne veut pas obéir à la carte finira par obéir aux récifs. -- Il ne faut plus dire Sarkozy, mais Sarkozon -- (╯°□°)╯︵ ┻━┻