2011-01-20 10 views

Respuesta

28
^[^.]*$ 

o

^[^.]+$ 

Dependiendo de si desea hacer coincidir cadena vacía. Algunas aplicaciones pueden suministrar implícitamente ^ y $, en cuyo caso no serían necesarias. Por ejemplo: el HTML5 input element's pattern attribute.

Puede encontrar mucha más información útil en el sitio regular-expressions.info.

+0

gracias, ¡funcionó! – tx31415

3

Usar una expresión regular que no tiene ningún puntos:

^[^.]*$ 

Eso es cero o más caracteres que no son puntos en toda la cadena. Algunas bibliotecas de expresiones regulares que he usado en el pasado tenían formas de obtener una coincidencia exacta de . En ese caso, no necesita ^ y $. Tener un lenguaje en su pregunta ayudaría.

Por cierto, usted no tiene tiene para usar una expresión regular. En java, podría decir:

!someString.contains("."); 
+0

@tchrist - Actualicé mi respuesta. Realmente he usado bibliotecas antes (no recuerdo qué) que permitan una coincidencia exacta. Pensé que el OP tenía problemas para decir "no punto". Además, creo que mi enfoque 'contains' es bastante razonable. Pero tal vez esto es tarea o el OP se ve obligado a utilizar una biblioteca que solo acepta una expresión regular ... – Tom

+0

Agregaré: mi solución funciona para la mayoría de los idiomas, pero puede haber sutilezas y estoy feliz de intentar aclarar si OP proporciona más detalles. Además, escapar entre corchetes está bien (en los idiomas que he usado) y prefiero hacerlo. – Tom

+0

@Tom: acepto que un control de subcadena en lugar de regex es un enfoque perfectamente razonable; la pregunta suena como tarea o de alguna manera en su cabeza. Lo que estás recordando es que Java tiene un método de "coincidencias" estropeado (no me hagas comenzar), que hace todo lo posible por proporcionar anclas incluso cuando no lo haces; esa es solo una de varias razones por las que solo debería usar su método 'find' si se ve obligado a usar Java para las expresiones regulares (no es muy bueno para ellas). La mayoría de los otros idiomas regex no son tan cojos. Por cierto, todavía tienes una barra inversa falsa. Retíralo y quitaré mi voto negativo. – tchrist

1

Requisito de validación: El primer carácter debe ser una letra y luego un punto '.' no está permitido en Target String.

// La cadena de entrada que estamos usando string input = "1A_aaA";

 // The regular expression we use to match 
     Regex r1 = new Regex("^[A-Za-z][^.]*$"); //[\t\0x0020] tab and spaces. 

     // Match the input and write results 
     Match match = r1.Match(input); 
     if (match.Success) 
     { 
      Console.WriteLine("Valid: {0}", match.Value); 

     } 
     else 
     { 
      Console.WriteLine("Not Match"); 
     } 
Cuestiones relacionadas