|
|
|
#1 (permalink) |
|
Messages: n/a
Hébergeur: |
J'utilise la fonction search de javascript sur une liste de phrases et
je souhaite avoir au final uniquement les phrases qui NE commencent PAS par "Bonjour". Je boucle donc sur mes phrases et j'interroge chacune avec search contenant l'expression régulière suivante : ^[^(Bonjour)] Si cette recherche est positive c'est que la phrase ne commencent pas par "Bonjour" et je la mets de coté. Mon problème : J'ai quelques phrases qui ne commencent pas par "Bonjour" qui sont tout de même absente de la sélection finale ce qui veut dire que mon expression régulière fonctionne mal. Une idée sur la synthaxe ? Ma problèmatique est un peu plus complexe que celle énoncée et je ne peux pas passer par autre chose qu'une expression régulière. Merci |
|
|
|
#2 (permalink) |
|
Messages: n/a
Hébergeur: |
Tony wrote:
> J'utilise la fonction search de javascript sur une liste de phrases et > je souhaite avoir au final uniquement les phrases qui NE commencent > PAS par "Bonjour". > Je boucle donc sur mes phrases et j'interroge chacune avec search > contenant l'expression régulière suivante : > ^[^(Bonjour)] > Si cette recherche est positive c'est que la phrase ne commencent pas > par "Bonjour" et je la mets de coté. > > Mon problème : > J'ai quelques phrases qui ne commencent pas par "Bonjour" qui sont > tout de même absente de la sélection finale ce qui veut dire que mon > expression régulière fonctionne mal. > > Une idée sur la synthaxe ? > Ma problèmatique est un peu plus complexe que celle énoncée et je ne > peux pas passer par autre chose qu'une expression régulière. Vous ne donnez pas bcp d'exemple alors il n'est pas possible de vous répondre. En attendant que vous donniez plus de détails, voyez du côté de ce génial outil : http://regulator.sourceforge.net |
|
|
|
#3 (permalink) |
|
Messages: n/a
Hébergeur: |
Le 04/09/2007 16:54, Tony a écrit :
> J'utilise la fonction search de javascript sur une liste de phrases et > je souhaite avoir au final uniquement les phrases qui NE commencent > PAS par "Bonjour". Ok. > Je boucle donc sur mes phrases et j'interroge chacune avec search > contenant l'expression régulière suivante : > ^[^(Bonjour)] Pfff... il faudrait en faire une FAQ quelque part. Une expression entre crochets [] matche un unique caractère, ainsi ^[^(Bonjour)] est strictement équivalent à ^[^jnoru)B(] ou à [^Bnoujnouronn(BourBon)]. Pour ton besoin, du plus compliqué au plus simple, tu pourrais : 1) Utiliser les assertions négatives (personnellement je ne le conseille pas). 2) Chercher /^Bonjour/ et considérer que le test est positif quand la recherche est négative. 3) Prendre les 7 premiers caractères de ta chaîne et vérifier si oui ou non le résultat est égal à "Bonjour". > Une idée sur la synthaxe ? > Ma problèmatique est un peu plus complexe que celle énoncée et je ne > peux pas passer par autre chose qu'une expression régulière. Donc la solution (3) est à éliminer, mais vois du côté de la solution (2) avant de devoir passer à la (1). |
|
|
|
#4 (permalink) |
|
Messages: n/a
Hébergeur: |
En fr.comp.lang.javascript <1188917648.308839.93970@k79g2000hse.googlegr
oups.com>, Tue, 4 Sep 2007 07:54:08, Tony <barret.tony@gmail.com> a ecrit : >Mon problème : >J'ai quelques phrases qui ne commencent pas par "Bonjour" qui sont >tout de même absente de la sélection finale ce qui veut dire que mon >expression régulière fonctionne mal. Str = phrase JeLeVeux = QuelqueRegExp.test(Str) && ! /^Bonjour/.test(Str) Mais est-ce que "Bonjour" doit etre suivi par /\s/ ? /[ \.,;?!]/ ? -- (c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6 news:comp.lang.javascript FAQ <URL:http://www.jibbering.com/faq/index.html>. <URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources. <URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links. |
|
|
|
#5 (permalink) |
|
Messages: n/a
Hébergeur: |
Dr J R Stockton a écrit :
> Mais est-ce que "Bonjour" doit etre suivi par /\s/ ? /[ \.,;?!]/ ? Ce qui nous amène à : /^\bBonjour\b/.test('Bonjoir, tout le monde !') En précisant que \b est le délimiteur de mots (http://www.commentcamarche.net/javascript/jsregexp.php3). J'aime les regex ![]() -- Mickaël Wolff aka Lupus Michaelis http://lupusmic.org |
|
|
|
#6 (permalink) |
|
Messages: n/a
Hébergeur: |
On 4 sep, 18:13, Olivier Miakinen <om+n...@miakinen.net> wrote:
> Le 04/09/2007 16:54, Tony a écrit : > > > J'utilise la fonction search de javascript sur une liste de phrases et > > je souhaite avoir au final uniquement les phrases qui NE commencent > > PAS par "Bonjour". > > Ok. > > > Je boucle donc sur mes phrases et j'interroge chacune avec search > > contenant l'expression régulière suivante : > > ^[^(Bonjour)] > > Pfff... il faudrait en faire une FAQ quelque part. Une expression > entre crochets [] matche un unique caractère, ainsi ^[^(Bonjour)] est > strictement équivalent à ^[^jnoru)B(] ou à [^Bnoujnouronn(BourBon)]. > > Pour ton besoin, du plus compliqué au plus simple, tu pourrais : > 1) Utiliser les assertions négatives (personnellement je ne le > conseille pas). > 2) Chercher /^Bonjour/ et considérer que le test est positif quand > la recherche est négative. > 3) Prendre les 7 premiers caractères de ta chaîne et vérifier si > oui ou non le résultat est égal à "Bonjour". > > > Une idée sur la synthaxe ? > > Ma problèmatique est un peu plus complexe que celle énoncée et jene > > peux pas passer par autre chose qu'une expression régulière. > > Donc la solution (3) est à éliminer, mais vois du côté de la solution > (2) avant de devoir passer à la (1). Très bonne analyse Je souhaitais néanmoins pouvoir le faire directement en expressions régulières car cela ne me parassait pas une demande si extraordinaire. Les autres méthodes vont me demander un plus de changement dans mon code. Cela étant les assertions négatives du type ?<! semble répondre à mon besoin mais la synthaxe ne semble pas être reconnu en javascript sous IE. |
|
|
|
#7 (permalink) |
|
Messages: n/a
Hébergeur: |
Le 05/09/2007 15:53, Tony a écrit :
> > Très bonne analyse Merci, mais il n'était peut-être pas indispensable de tout citer... > Je souhaitais néanmoins pouvoir le faire directement en expressions > régulières car cela ne me parassait pas une demande si extraordinaire. > Les autres méthodes vont me demander un plus de changement dans mon > code. Dans ce cas, peux-tu nous donner quelques lignes de ton code, pour que l'on comprenne pourquoi « ! test » ne peut pas être mis à la place de « test » ? > Cela étant les assertions négatives du type ?<! semble répondre > à mon besoin mais la syntaxe ne semble pas être reconnu en javascript > sous IE. Ah, j'ai déjà rencontré le problème : ça doit être encore la différence entre syntaxe Perl et syntaxe PCRE. À moins que tu n'aies oublié les parenthèses ? Au passage, tu n'as pas besoin d'une assertion du type (?<!Bonjour) mais plutôt du type (?!Bonjour). |
|
![]() |
| Outils de la discussion | |
|
|