comment en peut utiliser une expression réguliere qui selection un mot d’au moins 6 caractères répété au moins 5 fois dans une même ligne.
merci
comment en peut utiliser une expression réguliere qui selection un mot d’au moins 6 caractères répété au moins 5 fois dans une même ligne.
merci
Il faut utiliser les classes Pattern et Matcher de java.util pour exécuter des expressions régulières. Je t'invite à lire ce tutoriel pour comprendre le fonctionnement des regexp en Java : http://cyberzoide.developpez.com/java/regex/
Olivier Pitton
Site personnel : http://site.olivier-pitton.eu.cloudbees.net/
Page Developpez : http://olivier-pitton.developpez.com/
merci pour votre aide, oui je comprend comment le faire avec Pattern, mes par exemple trouvez un fichier contenant un mot d’au moins 6 caractères,
se terminant par la lettre c et n’utilisant que les lettres a,b,c,e,f,g,h,i,j,k,l et aucune majuscule.
ma expression régulière est "[a-ce-l]*c$" mes ca me donne pas le bonne résultat la même chose pour la question que j'ai poser mon expression est "\w{0,6}.\s{5}" merci.
- Le * ne veut pas dire "au moins 5 fois," bien sûr -_-°. Pour "au moins N fois," c'est {N,} la virgule indiquant "entre N et un nombre indéterminé de fois."
- Qu'est-ce que ce $ vient faire là ? Vire.
C'est peut-être possible en jouant avec le lookahead et les non capturing group, mais je crains que l'expression régulière au finale soit
- imbuvable
- intestable
- non fiable
Pourquoi ne pas simplement faire quelques lignes de code qui fasse ce boulot.
voila mon programme :
je veut sélectionne toutes les expressions commençant et se terminant par le même mot séparé par au plus 10 caractères comme « la vie la » dans « la vie la mort », sa sélectionne juste la vie la m sa marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.util.regex.*; public class Motif { public static void main(String[] args) { try{ Pattern p = Pattern .compile("^[a-z].{0,10}"); String entree = "la vie la mort"; Matcher m = p.matcher(entree); while (m.find()) System.out.println(entree.substring(m.start(), m.end())); }catch(PatternSyntaxException pse){} } }![]()
j'ai besoin d'aide voila mon programme
sa me donne ce résultat 2005,43.45
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.*; import java.util.regex.*; public class Motif { public static void main(String[] args) { try{ Pattern p = Pattern .compile("[0-9]{4},[0-9\\.]+"); String entree = "12/12/2005,43.45,32.1,"; Matcher m = p.matcher(entree); while (m.find()) System.out.println(entree.substring(m.start(), m.end())); }catch(PatternSyntaxException pse){} } }
au lieu de ce lui la 2005,32.1 sa fais plusieurs heur que je travaille sur ca merci
A noter que ca n'a strictement rien à voir avec les mot et répétition évoqués auparavant.....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Pattern p = Pattern .compile("([0-9]{4}),.*([0-9\\.]+)"); String entree = "12/12/2005,43.45,32.1,"; Matcher m = p.matcher(entree); while (m.find()) System.out.println(m.group(1)+m.group(2));
sa marche pas sa donne ce résultat :
20051
merci
Ya tu quelqu'un qui peu m'aider svp![]()
Ceci devrais corriger.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Pattern p = Pattern .compile("([0-9]{4}),.*?([0-9\\.]+)");
Partager