none
Como verificar se uma string é formada por números e termina com uma letra? RRS feed

  • Pergunta

  • Preciso verificar uma string de até 12 caracteres que poderá ter a seguintes disposição: 12345e ou 4e ou 100e, ou seja, constituída somente por números menos o último caractere que será sempre uma letra. Como fazer essa checagem? Grato pela ajuda!
    terça-feira, 20 de fevereiro de 2018 20:21

Respostas

  • Você pode usar expressão regular para isto:

    using System;
    using System.Text.RegularExpressions;
    					
    public class Program
    {
    	public static void Main()
    	{
    		var texto = "1233a";
    		var padrao = @"\d{1,11}[a-z]";
    		
    		Regex r = new Regex(padrao, RegexOptions.IgnoreCase);
    		
    		
    		Console.WriteLine(r.IsMatch(texto));
    	}
    }

    https://dotnetfiddle.net/RJw0Ng


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.


    terça-feira, 20 de fevereiro de 2018 21:32
  • Se pode apenas a letra e:

    ^\d{1,11}e$

    Se puder algumas letras específicas, como e, f, g:

    ^\d{1,11}[efg]$

    PS: Tinha ficado sem os indicadores de início e fim.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta Denis Valjean terça-feira, 20 de fevereiro de 2018 22:18
    terça-feira, 20 de fevereiro de 2018 21:56

Todas as Respostas

  • Você pode usar expressão regular para isto:

    using System;
    using System.Text.RegularExpressions;
    					
    public class Program
    {
    	public static void Main()
    	{
    		var texto = "1233a";
    		var padrao = @"\d{1,11}[a-z]";
    		
    		Regex r = new Regex(padrao, RegexOptions.IgnoreCase);
    		
    		
    		Console.WriteLine(r.IsMatch(texto));
    	}
    }

    https://dotnetfiddle.net/RJw0Ng


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.


    terça-feira, 20 de fevereiro de 2018 21:32
  • Você pode usar expressão regular para isto:

    using System;
    using System.Text.RegularExpressions;
    					
    public class Program
    {
    	public static void Main()
    	{
    		var texto = "1233a";
    		var padrao = @"\d{1,11}[a-z]";
    		
    		Regex r = new Regex(padrao, RegexOptions.IgnoreCase);
    		
    		
    		Console.WriteLine(r.IsMatch(texto));
    	}
    }

    https://dotnetfiddle.net/RJw0Ng


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.


    Errei por muito, estava tentanto o Regex, pois tinha pesquisado mas estava usando  @"^\d{1,12}\w$". Agora, se eu quiser que a última letra seja específica, no caso a letra E, há como? Ah, obrigado pela resposta!
    terça-feira, 20 de fevereiro de 2018 21:50
  • Se pode apenas a letra e:

    ^\d{1,11}e$

    Se puder algumas letras específicas, como e, f, g:

    ^\d{1,11}[efg]$

    PS: Tinha ficado sem os indicadores de início e fim.


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    • Marcado como Resposta Denis Valjean terça-feira, 20 de fevereiro de 2018 22:18
    terça-feira, 20 de fevereiro de 2018 21:56
  • Muito obrigado!
    terça-feira, 20 de fevereiro de 2018 22:18