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.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
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){} } }
Pour sélectionner "N'importe quoi, suivi d'un A, suivi de la même chose qu'avant le A" :
(.*) : N'importe quoi, dans un capturing group. Comme c'est le premier, il a le numéro 1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part "(.*)A\\1"
A : La lettre A
\\1 : La même chose que ce qu'on a pris dans le capturing group numéro 1
À toi d'utiliser ça pour ton problème.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
si j'ai bien compris faut que je face ca :
sa me donne pas le bon résultat sa donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part "(.*)([a-z].{0,10})\\1"
la vie la
mort
il faut pas que s'affiche la mort merci
Bien vu, mon exemple acceptait aussi "Rien, la lettre A, et à nouveau rien."
Pour corriger ce serait :
"N'importe quel caractère une ou plusieurs fois, la lettre A, et ce qu'on a pris avant la lettre A"
Code : Sélectionner tout - Visualiser dans une fenêtre à part "(.+)A\\1"
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Merci pour votre aide ,sa fonction
je reviens a mon 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. voila mon code :
je veut sélectionner juste abeghic 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 import java.util.regex.*; public class Motif { public static void main(String[] args) { try{ Pattern p = Pattern .compile("([a-ce-l].{6,})c"); String entree = "abeghic fabidlc"; Matcher m = p.matcher(entree); while (m.find()) System.out.println(entree.substring(m.start(), m.end())); }catch(PatternSyntaxException pse){} } }
merci
Qu'est-ce qu'il fait là ce point ?
(Et ces parenthèses, tant qu'à faire)
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
je pense que je lais trouvais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part "[a-ce-l]{6,}c"
j'essayer de sélectionner un mot d’au moins 2 caractères répété au moins 5 fois dans une même ligne.
sa donner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import java.util.regex.*; public class Motif { public static void main(String[] args) { try{ Pattern p = Pattern .compile("([a-z]{2,}).{5}"); String entree = "la vie est est est est est belle"; Matcher m = p.matcher(entree); while (m.find()) System.out.println(entree.substring(m.start(), m.end())); }catch(PatternSyntaxException pse){} } }
la vie
est est
est est
est belle
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\\.]+)");
sa marche pas plus sa donne 2005 43.45 ou lieu du 2005 32.1
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager