tl; dr
Solo agrega un espacio en tu clase de personaje .
^[a-zA-Z0-9_ ]*$
Ahora, si quieres ser estricto ...
Lo anterior no es exactamente correcto. Debido al hecho de que *
significa cero o más , coincidiría con todos los siguientes casos que, por lo general, no significa que coincidan:
- Una cadena vacía, "".
- Una cadena compuesta completamente de espacios, "".
- Una cadena que conduce y / o sigue con espacios, "Hello World".
- Una cadena que contiene múltiples espacios entre palabras, "Hola mundo".
Originalmente, no creía que valiera la pena entrar en esos detalles, ya que OP hacía una pregunta tan básica que parecía que la rigidez no era una preocupación. Sin embargo, ahora que la pregunta ha ganado popularidad, quiero decir ...
Lo cual, en mi sabor (sin usar \w
) se traduce en:
^[a-zA-Z0-9_]+( [a-zA-Z0-9_]+)*$
(Por favor, vota a @stema independientemente)
Algunas cosas a tener en cuenta sobre esta (y la respuesta de @ stema):
Si desea permitir múltiples espacios entre palabras (por ejemplo, si desea permitir espacios dobles accidentales, o si está trabajando con texto copiado y pegado de un PDF), agregue un +
espacio después del espacio:
^\w+( +\w+)*$
Si desea permitir pestañas y líneas nuevas (caracteres de espacio en blanco), reemplace el espacio con un \s+
:
^\w+(\s+\w+)*$
Aquí sugiero el +
valor predeterminado porque, por ejemplo, los saltos de línea de Windows consisten en dos caracteres de espacio en blanco en secuencia \r\n
, por lo que necesitará +
capturar ambos.
¿Sigue sin funcionar?
Comprueba qué dialecto de expresiones regulares estás usando. * En idiomas como Java, tendrá que escapar de sus barras diagonales inversas, es decir , \\w
y \\s
. En idiomas y utilidades más antiguos o más básicos, como sed
, \w
y \s
no están definidos, así que escríbalos con clases de caracteres, por ejemplo , [a-zA-Z0-9_]
y [\f\n\p\r\t]
, respectivamente.
* Sé que esta pregunta está etiquetadavb.net, pero en base a más de 25,000 visitas, supongo que no solo las personas se están enfrentando a esta pregunta. Actualmente es el primer hit en google para la frase de búsqueda, palabra de espacio de expresión regular .