Index

Lua patterns

En lua, il n'y a pas d'expressions régulières dans la librairie standard. Mais il y a ce que l'on appelle les patterns qui sont plus simples, plus légers, et ont une syntaxe quelque peu différente.

Ils s'utilisent via les fonctions suivantes: string.find, string.gmatch, string.gsub.


Des exemples

Extraire le nom d'un fichier (filename) contenu dans un chemin (pathname)
> string.gsub('/home/hs0ucy/Code/wiki.soucy.cc/templates/index.html', '(.*/)(.*)', '%2')
index.html
Dans le chemin d'un fichier (pathname), extraire la partie répertoire du fichier (dirname)
> string.match('/home/hs0ucy/Code/wiki.soucy.cc/templates/index.html', '(.*/)')
/home/hs0ucy/.hs0ucy/Code/wiki.soucy.cc/templates/
Dans un chemin absolu de répertoires, retourner seulement le dernier de la liste
> string.match('/home/hs0ucy/Code/wiki.soucy.cc', '^.+/(.+)$')
wiki.soucy.cc
Retirer l'extension dans un nom de fichier (pathname ou filename)
> string.match('/home/hs0ucy/Code/wiki.soucy.cc/templates/index.html', '(.+)%..*')
/home/hs0ucy/Code/wiki.soucy.cc/templates/index
Extraire le domaine ou sous-domaine d'une URL
> string.match('https://www.openbsdhandbook.com/multimedia/', '^%w+://([^/]+)')
www.openbsdhandbook.com