marcos web como Rails y Django ha incorporado soporte para "babosas", que se utilizan para generar URL legibles y SEO-amigable:¿Cómo puedo generar slugs URL en Perl?
Una cadena babosa normalmente contiene solo los caracteres a-z
, 0-9
y -
y, por lo tanto, puede escribirse sin escape de URL (piense en "foo% 20bar").
Busco una función babosa Perl que dado cualquier cadena Unicode válida devolverá una representación babosa (a-z
, 0-9
y -
).
Una función babosa muy trivial sería algo a lo largo de las líneas de:
$input = lc($input),
$input =~ s/[^a-z0-9-]//g;
Sin embargo, esta implementación no se ocuparía de la internacionalización y acentos (Quiero ë
para convertirse en e
). Una forma de evitar esto sería enumerar todos los casos especiales, pero eso no sería muy elegante. Estoy buscando algo más bien pensado y general.
Mi pregunta:
- Cuál es la forma más general/práctico para generar babosas tipo Django/Rails en Perl?This es cómo resolví el mismo problema en Java.
Hazlo de la misma manera que lo hiciste en Java. ¿Hay alguna operación en particular que no sepa cómo traducir? –
brian: Sí, la operación que no sabía cómo traducir era "String normalized = Normalizer.normalize (nowhitespace, Form.NFD);". Unicode :: Normalize lo resolvió. Vea la respuesta de Cameron. – knorv