Lua: Le tutoriel  wxWidgets
Lua
Les patterns: Quelques exemples d'utilisation.

Quelques exemples simples, pour illustrer ce qui vient d'être dit.

Et plutôt que de répéter toujours les mêmes choses, je vais créer une fonction intitulée: FindPattern()

	function FindPattern(text, pattern, start)
	    return string.sub(text, string.find(text, pattern, start))
    end	
				

Les classes de caractères.

-- Recherche la position de "an" et "ou"				
	print(string.find("banane", "an"))	--> 2  3
	
	print(string.find("banane", "ou"))	--> nil
	
local s = "une petite phrase"	
-- Recherche un mot commencent par...	
	print(FindPattern(s, "p....."))		--> petite
	
  	print(FindPattern(s, "p.....", 6))	--> phrase	
	
-- Recherche une lettre	
  	print(FindPattern(s, "%a"))	 --> u

-- Recherche tout ce qui est lettre	
	print(FindPattern(s, "%a+")) --> une
	
local s = "nous sommes en 2012"	
-- Recherche un chiffre	
	print(FindPattern(s, "%d"))	 --> 2

-- Recherche tout ce qui est chiffre	
	print(FindPattern(s, "%d+")) --> 2012

-- Recherche une lettre CAPITALE	
	print(FindPattern("mAjuscUle", "%u"))	--> A

-- Recherche une lettre minuscule	
	print(FindPattern("MInUScUle", "%l"))	--> n

-- Recherche une minuscule suivie d'une capitale	
	print(FindPattern("MInUScUle", "%l%u"))-->nU
				

Les ensembles.

-- Recherche la première occurrence d'une des lettres "x, y, j, k, n"	
	print(FindPattern("banana", "[xyjkn]"))	--> n	

-- Recherche la première occurrence d'une des lettres comprise entre j et q	
	print(FindPattern("banana", "[j-q]"))	--> n
			
-- Recherche ce qui n'est pas a ou b		
	print(FindPattern("banana", "[^ba]"))	--> n		
			
-- Recherche ce qui n'est pas compris entre a et n		
	print(FindPattern("bananas", "[^a-n]"))	--> s			
			
-- Recherche ce qui n'est pas lettre minuscule ou espace		
	print(FindPattern("nous sommes en 2012", "[%l%s]"))	--> 2	
				

Les captures.

		
-- Capture 3 lettres après le w			
	print(string.find("a word to the wise", "w(...)"))   --> 3  6  ord		
			
-- Capture 2 lettres y-compris le w		
	print(string.find("a word to the wise", "(w.)(..)")) --> 3  6  wo

-- Capture le mot et ce qui est imbriqué (2 lettres)	
	print(string.find("a word to the wise", "(w(..).)")) --> 3  6  word  or

-- Remplacer les mots qui commence par t, par banana
	print(string.gsub("a word to the wise", "(t%a+)", "banana"))
		--> a word banana banana wise	2
		-- (2 est le nombre de substitutions)		
				

Les répétitions.

* pour zéro ou plusieurs caractères du pattern. (* recherche la séquence la plus longue.)
	print(FindPattern("bananas", "az*"))		--> a
	print(FindPattern("bananas", "an*"))		--> an
	print(FindPattern("bannnnnanas", "an*"))	--> annnnnn		

+ pour une ou plusieurs caractères du pattern
	print(string.find("banana", "az+"))			--> nil
	print(FindPattern("bananas", "an+"))		--> an
	print(FindPattern("bannnnnanas", "an+"))	--> annnnn

- pour zéro ou plusieurs caractères du pattern. (- recherche la séquence la plus courte.)	
	print(FindPattern("bananas", "az-"))		--> a
	print(FindPattern("bananas", "an-"))		--> a
	print(FindPattern("bannnnnanas", "an-"))	--> a	
	
? pour zéro ou une occurrence du pattern		
	print(FindPattern("bananas", "az?"))		--> a
	print(FindPattern("bananas", "an?"))		--> an
	print(FindPattern("bannnnnanas", "an?"))	--> an	
				
logo wxWidgets Le savoir ne vaut que s"il est partagé par tous...
logo-internet_32x32.png Dernière mise à jour, le 9 décembre 2012.
Valid XHTML 1.0 Transitional

wxlualogo
Flèche haut
Flèche gauche
Flèche haut
Flèche droite