jakarta-regexp-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCallum" <mich...@spinsoftware.com>
Subject Re: Pbm with a RegExp
Date Mon, 09 Apr 2001 19:53:46 GMT
This should be sent to oro-users@jakarta.apache.org

On 9 Apr 2001, at 6:48, Marc briand wrote:
> Dear All,
> I have a probleme using a RegExp with the 
> com.oroinc.text.regex.* classes.
> 
> I have to do the following (simplified):
> I have a file with the following content: 
> 
> dn:cn=,ou=,o=fr
> 
> 
> I have to transform this file  like the following:
> dn:cn=user.ou=org,o=fr
> 
> I tried with the RegExp package but I have a Pbm since
> A PatternCompiler instance is used to compile the
> string representation (either as a String or char[])
> of a regular expression into a Pattern instance.
> 
> I ahve the following code (It is a simple sample code
> used only to understand and then resolve the pbm):
> 
> ****************************************************
> import com.oroinc.text.regex.*;
> import java.util.*;
> 
> public final class essai2 {
> 
>  
>   public static final void main(String args[]) {
>     
> 
>     int limit, interps, i;
>     PatternMatcher matcher = new Perl5Matcher();
>     Pattern pattern = null;
>     PatternCompiler compiler = new Perl5Compiler();
>     String regularExpression, input, sub, result;
> 
>    
> 
>     limit = Util.SUBSTITUTE_ALL;
>     interps = Util.INTERPOLATE_ALL;
> 
>   
> 
> 
>     
>  
> 	HashMap hm = new HashMap();
> 		
> 	
> 	hm.put("cn","user");
> 	hm.put("ou","org");
> 	Set set = hm.entrySet();
> 
> 	Iterator iterator = set.iterator();
> 
> 	while (iterator.hasNext())
> 	{
> 		String trash = "cn=";
> 		Map.Entry me = (Map.Entry) iterator.next();
> 		System.out.println(me.getKey() + "/" +
> me.getValue());
> 		String key = (String)me.getKey();
> 		String value =(String)me.getValue();
> 		regularExpression =key;
>     		sub=key=value ;//PBM HERE
You might try sub = key + "=" + value;

>     		input = "cn=,ou=,o=fr";
> 
> 	
> 
>     try {
>       pattern = compiler.compile(regularExpression);
>       System.out.println("substitute regex: " +
> regularExpression);
>     } catch(MalformedPatternException e){
>       System.err.println("Bad pattern.");
>       System.err.println(e.getMessage());
>       System.exit(1);
>     }
> 
>     // Perform substitution and print result.
>     result = Util.substitute(matcher, pattern, sub,
> input, limit, interps);
>     System.out.println("result: " + result);
>   
> 	}
>   }
> }
> 
> ******************************************************
> 
> 
> 
> 
> I have the following result:
> <cn/user
> substitute regex: cn
> result: user=,ou=,o=fr
> ou/org
> substitute regex: ou
> result: cn=,org=,o=fr>
> 
> Instead of the following:
> <cn/user
> substitute regex: cn
> result: cn=user=,ou=,o=fr
> ou/org
> substitute regex: ou
> result: cn=user,ou=org,o=fr>
> 
> 
> 
> Can anyone help me?
> 
> Thanks in advance.
> 
> Best regards,
> Marc.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Get email at your own domain with Yahoo! Mail. 
> http://personal.mail.yahoo.com/



Mime
View raw message