OVH Cloud OVH Cloud

regexp, +, [a-z]

3 réponses
Avatar
R12y
Bonjour,

J'ai un souci avec [a-z]+
Elle matche "toto" et "toto3".
Mais ne match pas "3toto".

Je ne comprends pas pourquoi: On lui demande pourtant si dans "3toto" il
y a une succession d'au moins une minuscule. "3toto" est composé d'un
chiffre ([0-9]) et d'une suite (4) de minuscules.
Pourquoi il ne match pas?

Sinon, question auxiliaire: en "français", c'est bien la regexp qui matche
la chaine, et non la chaine qui match le regexp, n'est-ce pas?

--
Telephone portable "intelligent" (SmartPhone) GSM, GPRS,...
Il est sous Linux, ne coute pas trop cher,...
http://www.it2l.com/product_info.php?cPath=91&products_id=456

3 réponses

Avatar
DINH Viêt Hoà

Bonjour,

J'ai un souci avec [a-z]+
Elle matche "toto" et "toto3".
Mais ne match pas "3toto".

Je ne comprends pas pourquoi: On lui demande pourtant si dans "3toto" il
y a une succession d'au moins une minuscule. "3toto" est composé d'un
chiffre ([0-9]) et d'une suite (4) de minuscules.
Pourquoi il ne match pas?


dans quelle commande utilises-tu la regexp ?

Sinon, question auxiliaire: en "français", c'est bien la regexp qui matche
la chaine, et non la chaine qui match le regexp, n'est-ce pas?


en français :
"une chaîne de caractères vérifie une expression rationnelle".

--
DINH V. Hoa,

"emacs, c'est génial" -- Arsunique

Avatar
DINH Viêt Hoà

J'ai un souci avec [a-z]+
Elle matche "toto" et "toto3".
Mais ne match pas "3toto".

Je ne comprends pas pourquoi: On lui demande pourtant si dans "3toto" il
y a une succession d'au moins une minuscule. "3toto" est composé d'un
chiffre ([0-9]) et d'une suite (4) de minuscules.
Pourquoi il ne match pas?


dans quelle commande utilises-tu la regexp ?


Un truc dans un programme python.

#########################################
In [1]: import re
In [2]: exprat=re.compile(r'[a-z]+')
In [3]: s_list=["toto","toto3", "3toto"]
In [4]: for s in s_list:
...: print exprat.match(s)
...:
<_sre.SRE_Match object at 0xb7b4f3d8>
<_sre.SRE_Match object at 0xb7b4f3d8>


http://docs.python.org/lib/re-objects.html

<<
4.2.4 Regular Expression Objects

match( string[, pos[, endpos]])
If zero or more characters *at the beginning* of string match this
regular expression [...]

search( string[, pos[, endpos]])
Scan through string looking for a location where this regular expression
produces a match, and return a corresponding MatchObject instance [...]




je pense que tu demandes le comportement de search() et non pas celui de
match().

--
DINH V. Hoa,

"emacs, c'est génial" -- Arsunique



Avatar
Blade1966
R12y wrote:

Bonjour,

J'ai un souci avec [a-z]+
Elle matche "toto" et "toto3".
Mais ne match pas "3toto".

Je ne comprends pas pourquoi: On lui demande pourtant si dans "3toto" il
y a une succession d'au moins une minuscule. "3toto" est composé d'un
chiffre ([0-9]) et d'une suite (4) de minuscules.
Pourquoi il ne match pas?

Sinon, question auxiliaire: en "français", c'est bien la regexp qui matche
la chaine, et non la chaine qui match le regexp, n'est-ce pas?



Salut, cela me parait normal la manière de réagir

tu demandes de matcher un caractère pris dans la liste [a-z] et de
répéter 1 à n fois l'exppression précédente

peux tu me dire exactement ce que tu veux matcher ?
à plus Jean-Philippe