je vous pose mon problème.
Je ne comprend pas pourquoi non regexp ne fonctionne pas :
groupe1:(10.121.19.4)groupe2:(255.255.255.0)groupe3:(null)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Pattern pattern=Pattern.compile(".*\"((?:\\d{1,3}\\.){3}\\d{1,3}).*\"((?:\\d{1,3}\\.){3}\\d{1,3}).*(ip vrf forwarding [A-Za-z_0-9]*)?.*"); Matcher m=pattern.matcher("Framed-IP-Address=\"10.121.19.4\", Framed-IP-Netmask=\"255.255.255.0\", cisco-avpair=\"lcp:interface-config=ip vrf forwarding AAAaAAA\\nip unnumbered loopback10116\""); if(m.find()){ for(int i=1;i<=m.groupCount();i++) System.out.print("groupe"+i+":("+m.group(i)+")"); System.out.println(); }
si je retire le ? (qui signale que le bloc est optionnel) j'obtiens bien ce que je veux dans le groupe 3 c'est a dire ip vrf forwarding VRFNAME le problème viens des autres lignes qui ne contient pas ip vrf et que je dois aussi traiter.
EDIT : J'ai regler le problème en faisant deux regexp.
Partager