Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1723 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  regex [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

regex [résolu]

n°2160015
suizokukan
Posté le 12-10-2012 à 12:05:31  profilanswer
 

Bonjour à tous,
je bute sur un problème simple avec une regex.  
Je veux extraire des chaînes comme "1ab", "1cd", "1ef", "2ab", "2cd", "2ef"..., soit un premier caractère pris parmi (1,2,3,...) suivi d'une série de caractères pris parmi (ab, cd, ef...).  
J'avais pensé à : ([1|2|3]ab|cd|ef) qui fonctionne avec 1ab mais pas avec 1ef par exemple. Où est mon erreur ?
 
Je ne peux pas utiliser \d,\w,\S car les caractères que j'utilise n'ont en fait rien à voir avec 1,2,3,... ou ab, cd, ef... Je n'ai présenté ci-dessus qu'une réduction de mon problème.
 
Merci de m'aider !


Message édité par suizokukan le 12-10-2012 à 14:32:50

---------------
rule #1 : trust the python
mood
Publicité
Posté le 12-10-2012 à 12:05:31  profilanswer
 

n°2160016
flo850
moi je
Posté le 12-10-2012 à 12:07:28  profilanswer
 

[123](ab|cd|ef)  ?


---------------

n°2160021
gilou
Modérateur
Modzilla
Posté le 12-10-2012 à 12:54:34  profilanswer
 

Citation :

Je ne peux pas utiliser \d,\w,\S car les caractères que j'utilise n'ont en fait rien à voir avec 1,2,3,... ou ab, cd, ef...


Si tu
1) expliquais quels sont ces caractères
2) le langage ou cette regex est employé (car certains langages savent appliquer les propriétés unicodes pour leurs regex et d'autres pas)
On pourrait te répondre plus précisément.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2160034
suizokukan
Posté le 12-10-2012 à 14:11:01  profilanswer
 

Merci à flo850 et à Gilou pour leurs répones :

 

> flo850 : ta regex permet d'avoir "ef" en résultat alors que ces deux lettres doivent être précédées d'un chiffre.
> Gilou : j'utilise Python et le module re. Je travaille sur les caractères de l'IPA (http://en.wikipedia.org/wiki/IPA).

 

A la place de (1,2,3,...) j'ai en fait : ᶢ|ᵇ|ᵈ|ʷ|ᵖ|ⁿ
A la place (ab,cd,ef,...) j'ai en fait : i|y|ɨ|ʉ|ɯ|u|ʏ|ɪ̈|ɪ|ʊ̈|ʊ|e̞|e|ø̞|ø|ɘ|ɵ|ɤ̞|ɤ|o̞|o|ə|ɛ|œ|ɜ|ɞ|ʌ|ɔ|æ|ɐ|a|ɶ|ä|ɑ|ɒ|ʩ|ʪ|ʫ|ʬ|ʭ|¡|ʍ|w|ɥ|ɧ|k͡p|ɡ|ɡ͡b|ŋ͡m|ʘ̃|ʘ|ǀ̃|ǀ|ʇ̃|ʇ|ǃ̬˞|ǃ˞|ǃǁ|!|ǃ̃˞|ǃ̃|ǃ|ʗ̃|ʗ|ǂ̬|ǂ̃|ǂ|ǁ̃|ǁ|ʖ̃|ʖ|‼̃|‼̬|‼|ɓ̥|ɓ|ɗ̥|ɗ|ʄ|ᶑ|ʛ|ť|m|ɱ|n|ɳ|ɲ|ŋ|ɴ|pʼ↓|pʼ|p|b|tʼ↓|tʼ|t|d|ʈʼ|ʈ|ɖ|cʼ|çʼ|ç|c|ɟ|kʼ|k|g|ƙ|ɠ|qʼ|q|ɢ̆|ɢ|ʡ̯|ʡ|ʔ|ɸʼ|ɸ|β|fʼ|f|v|θʼ|θ͇|θ̱|θ̠|θ|ð|sʼ|s|S|z|ʃʲ|ʃʼ|ʃ|ʒʲ|ʒ|ʂʼ|ʂ|ʐ|ɕʼ|ɕ|ʑ|ʝ|xʼ|x|ɣ˕|ɣ|χʼ|χ|ʁ̝|ʁ̞|ʁ|ħʼ|ħ|ʕ̝|ʕ̞|ʕ|ʜ|ʢ̞|ʢ̝|ʢ|h|ɦ|ʋ|ɹ̝̊|ɹ|ɻ|j|ɰ|ⱱ|ɾ|ɽ|ʙ|r|ʀ|ᴙ|ɬʼ|ɬ̢ʼ|ɬ̢|ɬ|ɮ|ʟ̆|ʟ̝̊|ʟ̝̊ʼ|ʟ̝|ʟ|l|ɭ˔|ɭ̆|ɭ|ʎ̯|ʎ̥˔ʼ|ʎ̥˔|ʎ˔|ʎ̝̥ʼ|ʎ̥ʼ|ʎ̥|ʎ|ɺ˞|ɺ̢|ɺ̠|ɺ||||ʼ||ʼ|ƥ|ƭ|ᵑǂ|ᵑǁ|ᵑʖ|ᵑǀ|ᵑʇ|ᵑ‼|ᵑǃ˞|ᵑǃ|ᵐʘ|ᵑʘ|ᵑʗ|ᶢǂ|ᶢǃˡ|ᶢǃ|ᶢ‼|ᶢʗ|ᶢʘ

 

Certains caractères sont simples ( v ) ou composés ( sʼ = s + ʼ ).

 

Je cherche à récupérer des chaînes comme ⁿxʼ ou ʷⁿβ.

 

Merci de votre aide !

Message cité 1 fois
Message édité par suizokukan le 12-10-2012 à 14:12:30

---------------
rule #1 : trust the python
n°2160035
flo850
moi je
Posté le 12-10-2012 à 14:17:42  profilanswer
 

non, ma requete prends quelque chose quie st compsé de 1 OU 2 OU 3, suivi de ab OUcd OU EF


---------------

n°2160039
suizokukan
Posté le 12-10-2012 à 14:21:32  profilanswer
 

flo850 > j'avoue ne pas comprendre; si je teste sur http://re-try.appspot.com/ avec text=1ef et regex=[123](ab|cd|ef) j'obtiens ef et non 1ef. Ai-je commis une erreur ?


Message édité par suizokukan le 12-10-2012 à 14:24:10

---------------
rule #1 : trust the python
n°2160040
flo850
moi je
Posté le 12-10-2012 à 14:25:16  profilanswer
 

si tu récupères uniquement ce qui est matché par la parenthèse alors c'est normal.  
 
utilise ça : ([123](ab|cd|ef)) , ça devrait te donner 1ef et ef comme match, suivant le language que tu utilise pour le traiter, bien sûr


---------------

n°2160044
suizokukan
Posté le 12-10-2012 à 14:32:23  profilanswer
 

> flo850 : exact, je l'avais remarqué; je croyais qu'il fallait n'avoir qu'un résultat (1ef) et non le double résultat (1ef,ef). Mais en effet tu réponds bien à ma question. Merci beaucoup !


---------------
rule #1 : trust the python
n°2160046
flo850
moi je
Posté le 12-10-2012 à 14:34:20  profilanswer
 

:sol:


---------------

n°2160106
gilou
Modérateur
Modzilla
Posté le 12-10-2012 à 17:07:17  profilanswer
 

suizokukan a écrit :

Merci à flo850 et à Gilou pour leurs répones :
 
> flo850 : ta regex permet d'avoir "ef" en résultat alors que ces deux lettres doivent être précédées d'un chiffre.
> Gilou : j'utilise Python et le module re. Je travaille sur les caractères de l'IPA (http://en.wikipedia.org/wiki/IPA).
 
A la place de (1,2,3,...) j'ai en fait : ᶢ|ᵇ|ᵈ|ʷ|ᵖ|ⁿ
A la place (ab,cd,ef,...) j'ai en fait : i|y|ɨ|ʉ|ɯ|u|ʏ|ɪ̈|ɪ|ʊ̈|ʊ|e̞|e|ø̞|ø|ɘ|ɵ|ɤ̞|ɤ|o̞|o|ə|ɛ|œ|ɜ|ɞ|ʌ|ɔ|æ|ɐ|a|ɶ|ä|ɑ|ɒ|ʩ|ʪ|ʫ|ʬ|ʭ|¡|ʍ|w|ɥ|ɧ|k͡p|ɡ|ɡ͡b|ŋ͡m|ʘ̃|ʘ|ǀ̃|ǀ|ʇ̃|ʇ|ǃ̬˞|ǃ˞|ǃǁ|!|ǃ̃˞|ǃ̃|ǃ|ʗ̃|ʗ|ǂ̬|ǂ̃|ǂ|ǁ̃|ǁ|ʖ̃|ʖ|‼̃|‼̬|‼|ɓ̥|ɓ|ɗ̥|ɗ|ʄ|ᶑ|ʛ|ť|m|ɱ|n|ɳ|ɲ|ŋ|ɴ|pʼ↓|pʼ|p|b|tʼ↓|tʼ|t|d|ʈʼ|ʈ|ɖ|cʼ|çʼ|ç|c|ɟ|kʼ|k|g|ƙ|ɠ|qʼ|q|ɢ̆|ɢ|ʡ̯|ʡ|ʔ|ɸʼ|ɸ|β|fʼ|f|v|θʼ|θ͇|θ̱|θ̠|θ|ð|sʼ|s|S|z|ʃʲ|ʃʼ|ʃ|ʒʲ|ʒ|ʂʼ|ʂ|ʐ|ɕʼ|ɕ|ʑ|ʝ|xʼ|x|ɣ˕|ɣ|χʼ|χ|ʁ̝|ʁ̞|ʁ|ħʼ|ħ|ʕ̝|ʕ̞|ʕ|ʜ|ʢ̞|ʢ̝|ʢ|h|ɦ|ʋ|ɹ̝̊|ɹ|ɻ|j|ɰ|ⱱ|ɾ|ɽ|ʙ|r|ʀ|ᴙ|ɬʼ|ɬ̢ʼ|ɬ̢|ɬ|ɮ|ʟ̆|ʟ̝̊|ʟ̝̊ʼ|ʟ̝|ʟ|l|ɭ˔|ɭ̆|ɭ|ʎ̯|ʎ̥˔ʼ|ʎ̥˔|ʎ˔|ʎ̝̥ʼ|ʎ̥ʼ|ʎ̥|ʎ|ɺ˞|ɺ̢|ɺ̠|ɺ||||ʼ||ʼ|ƥ|ƭ|ᵑǂ|ᵑǁ|ᵑʖ|ᵑǀ|ᵑʇ|ᵑ‼|ᵑǃ˞|ᵑǃ|ᵐʘ|ᵑʘ|ᵑʗ|ᶢǂ|ᶢǃˡ|ᶢǃ|ᶢ‼|ᶢʗ|ᶢʘ
 
Certains caractères sont simples ( v ) ou composés ( sʼ = s + ʼ ).
 
Je cherche à récupérer des chaînes comme ⁿxʼ ou ʷⁿβ.  
 
Merci de votre aide !

Regexp sur une langue a click :D
Je suis pas pythonneux mais perleur, et j'organiserais ça avec des variables en perl:
my $prearticulation = "ᶢ|ᵇ|ᵈ|ʷ|ᵖ|ⁿ";
my ....
my $clicks = "ᵑǀ|ᵑʇ|ᵑ‼|ᵑǃ˞|ᵑǃ|ᵐʘ|ᵑʘ|ᵑʗ|ᶢǂ|ᶢǃˡ|ᶢǃ|ᶢ‼|ᶢʗ|ᶢʘ";
my $regexp = "((?:$prearticulation)(?:...|$clicks)+)";
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 12-10-2012 à 17:07:17  profilanswer
 

n°2160116
suizokukan
Posté le 12-10-2012 à 20:30:19  profilanswer
 

Merci Gilou pour tes conseils : en fait cette longue série de phonèmes est extraite d'une base de données qui les définit un par un. Merci encore de m'avoir aidé !


---------------
rule #1 : trust the python

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  regex [résolu]

 

Sujets relatifs
python, regex, unicode [résolu]Regex Tag <img />
[RegEx] Supprimer les espaces avant et après comme un trimprobleme regex java
Regex en LUA ???[resolu] Nettoyer du code html pour enlever certaines balise inutiles
[PHP] RegEx[résolu] regex : extraire entre une paire d'accolades matchées
Regex et prise de tête ![Resolu] Regex : Variable et incrementation dans le replace
Plus de sujets relatifs à : regex [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR