¿Cuál es la forma más fácil de escribir en mayúscula la primera letra de cada palabra de una cadena?¿Cómo puedo escribir en mayúscula la primera letra de cada palabra en una cadena en Perl?
Respuesta
Ver the faq.
No creo que ucfirst() satisfaga la pregunta del OP para poner en mayúscula la primera letra de cada palabra en una cadena sin dividir la cadena y unirla más tarde.
Eche un vistazo a la función ucfirst.
$line = join " ", map {ucfirst} split " ", $line;
Tenga en cuenta que split ("", $ line) se divide en espacios en blanco arbitrarios, por lo que no conservará todos los espacios en blanco. – moritz
de acuerdo; la respuesta correcta sería '$ line = join" ", map {ucfirst} split//, $ line;' (tenga en cuenta el "changed to /) – Ether
@Ether: Closer, pero aún elimina _trailing_ spaces (y no lo haría reconocer palabras separadas por '\ t' solamente). – mklement0
$string =~ s/(\w+)/\u$1/g;
debería funcionar bien
¿No sería esto mayúscula toda la cadena, en lugar de la primera letra de cada palabra? –
@briandfoy: su enlace está roto. Señale esto: http://learn.perl.org/faq/perlfaq4.html#How-do-I-capitalize-all-the-words-on-one-line- –
Tenga en cuenta que la solución FAQ no funcionará si tiene palabras que están en todas las tapas y desea que sean (sólo) en mayúscula en su lugar. Puede hacer una expresión regular más complicada, o simplemente hacer un lc en la cadena antes de aplicar la solución de preguntas frecuentes.
La solución de preguntas frecuentes funciona bien porque hay en realidad varias soluciones en las preguntas frecuentes. La mejor solución es Damian's Text :: Autoformat, que resuelve exactamente su problema. –
La función ucfirst en un mapa ciertamente hace esto, pero solo de una manera muy rudimentaria. Si quieres algo un poco más sofisticado, echa un vistazo a John Gruber's TitleCase script.
Texto :: Autoformat ya lo hace. Está en perlfaq4 :) –
Como @brian menciona en los comentarios la respuesta aceptada actualmente por @piCookie es incorrecta.
$_="what's the wrong answer?";
s/\b(\w)/\U$1/g
print;
Esto imprimirá "¿Cuál es la respuesta incorrecta?" notar la S mayúscula erróneamente
A medida que el FAQ dice usted es probablemente mejor usar
s/([\w']+)/\u\L$1/g
$capitalized = join '', map { ucfirst lc } split /(\s+)/, $line;
Al capturar el espacio en blanco, se inserta en la lista y se utiliza para reconstruir el espaciamiento original. "ucfirst lc" escribe "teXT" en "Texto".
No maneja '" bill o'hanlon "'. –
Probablemente quiera usar 'split/(\ W +) /' luego. – kixx
Puedes usar 'Title Case', es una pieza genial de código escrita en Perl.
Este capitaliza sólo la primera palabra de cada línea:
perl -ne "print (ucfirst($1)$2) if s/^(\w)(.*)/\1\2/" file
probar esto:
echo "what's the wrong answer?" |perl -pe 's/^/ /; s/\s(\w+)/ \u$1/g; s/^ //'
¿Cuál es la respuesta equivocada?
- 1. mayúscula la primera letra de cada palabra
- 2. Capitalizar/Poner en mayúscula la primera letra de cada palabra en una cadena en Matlab?
- 3. ¿Cómo se escribe en mayúscula la primera letra de la primera palabra en una oración?
- 4. ¿Cómo puedo escribir en mayúscula la primera letra de una entrada?
- 5. Convertir la primera letra en cadena en mayúscula
- 6. Poner en mayúscula la primera letra. MySQL
- 7. Obtenga la primera letra de cada palabra en una cadena, en Javascript
- 8. ¿Cuál es la mejor manera de escribir en mayúscula la primera letra de cada palabra en una cadena en SQL Server
- 9. ¿Cómo hacer la primera letra en mayúscula en un UILabel?
- 10. strftime hacer la primera letra mayúscula (mayúscula) en PHP
- 11. Convierta toda la primera letra a mayúscula, descanse más abajo para cada palabra
- 12. Obtener la posición de la primera letra mayúscula en una cadena utilizando php
- 13. Capitaliza automáticamente la primera letra de la primera palabra en una nueva oración en LaTeX
- 14. Compruebe si la primera letra de la palabra es una letra mayúscula
- 15. Primera letra mayúscula para EditText
- 16. Poner en mayúscula la primera letra en ruby
- 17. Cambiar el valor de la primera letra de cada palabra
- 18. Devolver la primera letra de NSString en mayúscula
- 19. XSL - ¿Cómo se escribe en mayúscula la primera letra
- 20. ¿Cómo se muestra la primera letra en mayúscula?
- 21. Hacer la primera letra en mayúscula y el resto en minúscula en una cadena
- 22. Poner en mayúscula la última letra de una cadena
- 23. palabra dividida por la letra mayúscula
- 24. Cómo encontrar la primera letra que no sea mayúscula en la cadena usando python
- 25. C#: nombres de métodos con la primera letra en mayúscula?
- 26. Poner en mayúscula la primera letra de las oraciones CSS
- 27. Regex escribe en mayúscula la primera letra de cada palabra, también después de un carácter especial como un guión
- 28. ¿Cómo puedo agregar un guión bajo antes de cada letra mayúscula dentro de una cadena Java?
- 29. ¿Cómo hago para que la primera letra de una cadena sea mayúscula?
- 30. Comprobando si la primera letra de la cadena está en mayúscula
Err, \ U se implementa internamente al llamar a ucfirst, por lo que su afirmación al respecto contradice sus propios consejos. :-) –
El modificador s /// g itera, por lo que hace Cuando vi por primera vez otra respuesta con solo "mirar la función ucfirst", sentí al menos más acerca de la división/unión, se debe mencionar, y veo a la persona que está publicando para incluirla. – piCookie
No desea utilizar el consejo que dio, que es el código que utiliza la pregunta frecuente para mostrar la forma incorrecta de hacerlo. Lea el texto justo después de ese bit donde explico por qué esa respuesta es incorrecta. :) –