¿Cuál es una buena forma de probar para ver si una cadena solo está llena de caracteres en blanco con expresiones regulares?Cómo comprobar si una cadena es solo un espacio en blanco en Perl
Respuesta
if($string=~/^\s*$/){
#is 100% whitespace (remember 100% of the empty string is also whitespace)
#use /^\s+$/ if you want to exclude the empty string
}
Tenga en cuenta que Perl tiene indicadores predeterminados para el operador de coincidencia, por lo que alguien puede haber establecido la opción '/ m' en otro lugar del alcance. Eso significa que '^' y '$' coinciden al principio o al final de las líneas, lo que permite el texto antes y después de los anclajes. Para evitar eso, use el principio y el final de los anclajes de cadena: '/ \ A \ s * \ z /'. –
Su declaración de regular debería buscar^\ s + $. Se requerirá al menos un espacio en blanco.
En caso de que se esté preguntando, "el espacio en blanco se define como [\ t \ n \ f \ r \ p {Z}]". Ver http://userguide.icu-project.org/strings/regexp.
\t Match a HORIZONTAL TABULATION, \u0009.
\n Match a LINE FEED, \u000A.
\f Match a FORM FEED, \u000C.
\r Match a CARRIAGE RETURN, \u000D.
\p{UNICODE PROPERTY NAME} Match any character with the specified Unicode Property.
Tenga en cuenta que Perl tiene indicadores predeterminados para el operador de coincidencia, por lo que alguien puede haber configurado la opción '/ m' en otro lugar en el alcance. Eso significa que '^' y '$' coinciden al principio o al final de las líneas, lo que permite el texto antes y después de los anclajes. Para evitar eso, use el principio y el final de los anclajes de cadena: '/ \ A \ s * \ z /'. –
También, vea [perlrecharclass] (http://perldoc.perl.org/perlrecharclass.html) para la definición de Perl de espacios en blanco. –
(he decidido editar mi post para incluir los conceptos de la siguiente conversación con tobyodavies.)
En la mayoría de los casos, se desea determinar si algo es o no un espacio en blanco, ya que el espacio en blanco es relativamente insignificante y desea omitir una cadena que consiste simplemente en espacios en blanco. Entonces, creo que lo que quieres determinar es si hay o no personajes significativos.
Así que tiendo a usar la prueba inversa: $str =~ /\S/
. La determinación del predicado "cadena contiene un S carácter significativo".
Sin embargo, para aplicar su pregunta en particular, esto puede ser determinado de forma negativa por la prueba: $str !~ /\S/
+1: Buen pensamiento. –
Depende completamente de si desea que "" coincida o no. – ysth
no es fan de los dobles negativos - no * contiene * no * espacios en blanco ... no está seguro de esto, pero definitivamente es una forma interesante de resolver el problema. – tobyodavies
Si desea comprobar la dada String
por si sólo contiene caracteres de espacio en blanco o no en expresiones regulares ...
String given_string=" \t "; //add spaces and tabs any white space character
System.out.println(given_string.matches("^\\s+$"));
Comprobará al menos un carácter de espacio en blanco que comience desde el principio de la cadena, hasta el final, si aparece un carácter no en blanco, devolverá falso. Funciona para caso NULL y líneas nuevas también (^_^)
- 1. comprobar si un solo carácter es un espacio en blanco?
- 2. Compruebe si la cadena es solo un espacio en blanco?
- 3. Cómo comprobar si una cadena contiene espacios en blanco
- 4. Compruebe si una cadena tiene espacio en blanco
- 5. Compruebe si string.at (i) es un espacio en blanco C++
- 6. ¿Cómo comprobar si un tipo es una cadena en C#?
- 7. Cómo comprobar si string es un espacio de nombres
- 8. ¿Cómo puedo reemplazar múltiples espacios en blanco con un solo espacio en Perl?
- 9. getline compruebe si la línea es un espacio en blanco
- 10. Cómo comprobar si una cadena contiene solo caracteres específicos
- 11. Python: ¿Cómo comprobar si una cadena es un IRI válido?
- 12. ¿Comprobar cadena si contiene solo caracteres latinos?
- 13. ¿Cómo puedo comprobar que Java String no es un espacio en blanco?
- 14. Sustituto espacios en blanco múltiple con un solo espacio en blanco en Python
- 15. ¿Cómo comprobar si un texto es todos los caracteres de espacio en blanco en el lado del cliente?
- 16. ¿Cómo puedo determinar si una cadena no es nula y no solo espacios en blanco en Groovy?
- 17. ¿Cómo puedo verificar si la cadena contiene caracteres y espacios en blanco, no solo espacios en blanco?
- 18. ¿Cómo puedo encapsular una cadena en Perl?
- 19. ¿Cómo comprobar si una cadena está en una matriz?
- 20. Dividir una cadena con múltiples espacios en blanco con perl?
- 21. Objective-C cómo comprobar si una cadena es nula
- 22. iPhone: ¿Cómo comprobar si existe una subcadena en una cadena?
- 23. Ver si una cadena de rubí tiene espacios en blanco
- 24. Cómo comprobar si una cadena es un XML válido sin mostrar una advertencia en PHP
- 25. ¿Cómo puedo comprobar si hay blanco en DataView.RowFilter
- 26. ¿Cómo comprobar si un valor es un número entero o una cadena en jasmine.js?
- 27. ¿Cómo comprobar en MATLAB si un vector solo contiene ceros?
- 28. espacio en blanco en la cadena de formato (scanf)
- 29. Eliminar exceso de espacio en blanco de una cadena
- 30. Eliminar espacio en blanco en una tabla
Vea también: http://stackoverflow.com/questions/1968702/how-can-i-detect-a-blank-line-in-perl – Alex