je vous pose mon problème.

Je ne comprend pas pourquoi non regexp ne fonctionne pas :

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();
		}
groupe1:(10.121.19.4)groupe2:(255.255.255.0)groupe3:(null)

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.