2012-07-23 24 views
5

Una línea tiene que ser validado a través de expresiones regulares,Regex búsqueda de todo pero no vacío

  1. línea puede contener cualquier carácter, espacios, dígitos, flotadores.

  2. línea no debe estar en blanco

He intentado esto:

[A-Za-z0-9~`!#$%^&*()_+-]+ //thinking of all the characters 

Cualquier solución alternativa será útil

+1

Qué le pasa a '' +.? –

+3

Entonces, ¿está diciendo que se permite absolutamente todo, siempre que la línea no esté vacía? ¿Por qué quieres usar una expresión regular para esto, a diferencia de la función 'longitud' que estoy seguro que tiene tu lenguaje? – ruakh

+1

¿necesita expresiones regulares para esto? ¿por qué no simplemente recortar la línea y comprobar si no es una cadena vacía? –

Respuesta

0

intento:

[.]+ 

Debe ser cualquier char acter, al menos uno.

+6

-1, lo siento. En la mayoría de los motores de expresiones regulares, '[.]' Solo coincidirá con un período real. Te refieres a '.'. – ruakh

2

Puede verificar si la línea coincide con ^$ si está en blanco y puede usarla como una falla; de lo contrario, pasará.

6

Probar: [^()]

en Python con re.match():

>>> re.match(r"[^()]", '') 
    >>> re.match(r"[^()]", ' ') 
    <_sre.SRE_Match object at 0x100486168> 
10

Prueba esto para que coincida con una línea que contiene algo más que un espacio en blanco

/.*\S.*/ 

Esto significa

/ = delimitador
.* = cero o más de cualquier cosa menos nueva línea
\S = nada, excepto un espacio en blanco (nueva línea, tabulador, espacio)

así que tienes
partido cualquier cosa menos nueva línea + algo no espacios en blanco + cualquier cosa menos nueva línea

si la línea de solo espacio en blanco cuenta como espacio en blanco, luego reemplace la regla con /.+/, que coincidirá con 1 o más de cualquier cosa.

+0

¡Esta es la respuesta correcta! – calbertts

-1

Ésta coincidirá con todo, pero la cadena no está en blanco:

^(\s|\S)*(\S)+(\s|\S)*$ 

cadena en blanco es los que contienen caracteres vacíos sólo (pestañas, espacios, etc.).

0

Prueba esto:

^.+$ 

He utilizado este en BeautifulSoup pitón al tratar de encontrar las etiquetas que no tienen un atributo que está vacía. Funcionó bien Ejemplo es el siguiente:

# get first 'a' tag in the html content where 'href' attribute is not empty 
parsed_content.find("a", {"href":re.compile("^.+$")}) 
0

Ésta coincidirá con cada línea con al menos 1 carácter:

(.*?(\n)) 
Cuestiones relacionadas