/ Entrada de caracteres duplos Regex em Ruby - ruby, regex

Entrada de caracteres duplos Regex em Ruby - ruby, regex

Eu não preciso permitir mais de um período (.) na entrada da string. Qual é a melhor maneira de fazer isso usando Ruby regex?

Respondendo aos comentários:

Eu quero limitar uma entrada de apenas um período no endereço de e-mail durante o registro de e-mail. Eu tenho regex de e-mail básico para entrada de e-mail. Minha maravilha é, se é possível limitar o número de (.) através do próprio Regex, ou eu deveria usar bibliotecas Ruby.

Sim, é uma questão de novato.

A expressão regular é assim

/A([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})Z/i

Como apenas permitir um período dentro de qualquer parte dele?

Respostas:

2 para resposta № 1

Supondo que você quer dizer no máximo um período na parteantes do @, teoricamente seria possível fazer isso com o seguinte regex (ele não permite um ponto como primeiro ou último caractere e não faz nenhuma outra validação):

^[^.]+(.[^.]+)?$

O regex acima apenas lida com a parte antes do@, você terá que adicionar o resto da expressão regular. Ela basicamente corresponde a um grupo de 1 ou mais caracteres não periódicos, seguido por um grupo opcional de um período e seguido por 1 ou mais caracteres não periódicos.

Estou curioso para saber por que você gostaria de limitarregistro para usuários com no máximo um período em seu endereço de e-mail ... isso não parece ser uma restrição sensível, já que é bastante realista que os usuários legitimamente tenham mais de um período em seus endereços.