Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Exp Reg - commence par le mot

6 réponses
Avatar
Tony
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=E9guli=E8re suivante :
^[^(Bonjour)]
Si cette recherche est positive c'est que la phrase ne commencent pas
par "Bonjour" et je la mets de cot=E9.

Mon probl=E8me :
J'ai quelques phrases qui ne commencent pas par "Bonjour" qui sont
tout de m=EAme absente de la s=E9lection finale ce qui veut dire que mon
expression r=E9guli=E8re fonctionne mal.

Une id=E9e sur la synthaxe ?
Ma probl=E8matique est un peu plus complexe que celle =E9nonc=E9e et je ne
peux pas passer par autre chose qu'une expression r=E9guli=E8re.

Merci

6 réponses

Avatar
Pierre Goiffon
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

Avatar
Olivier Miakinen
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).

Avatar
Dr J R Stockton
En fr.comp.lang.javascript
oups.com>, Tue, 4 Sep 2007 07:54:08, Tony a

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&gt;.
<URL:http://www.merlyn.demon.co.uk/js-index.htm&gt; jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/&gt; TP/BP/Delphi/jscr/&c, FAQ items, links.

Avatar
Mickaël Wolff

Mais est-ce que "Bonjour" doit etre suivi par /s/ ? /[ .,;?!]/ ?


Ce qui nous amène à : /^bBonjourb/.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

Avatar
Tony
On 4 sep, 18:13, Olivier Miakinen <om+ 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".


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 solu tion
(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.


Avatar
Olivier Miakinen

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).