I think you'll need to use MatchResult's method group(int) which gets the
contents of a parenthesised group ($1, $2 etc. in Perl).
If you want to do substitutions take a look at Perl5Substitution.
For example (pardon any typos!):
String aRegex = "^(\d+)-(\d+)";
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
try{
Pattern compiledPattern = compiler.compile(aRegex);
if(matcher.matches(inputString, compiledPattern)){
MatchResult mResult = matcher.getMatch();
String prefix = mResult.group(1);
String p1 = mResult.group(2);
...
}
} catch(MalformedPatternException mpe){
...
}
hth, my Perl's pretty poor so I hope I got the right idea of what you wanted
to do.
Dave
-----Original Message-----
From: Rupinder Singh Mazara [mailto:[EMAIL PROTECTED]]
Sent: 22 July 2002 14:46
To: [EMAIL PROTECTED]
Subject: Newbee needs help
Hi all
I am a new user to ORO and need some help
I would like to execute the following perl code in java
$pages = "something" ;
if ($pages =~ /^(\d+)-(\d+)/){
($p1,$p2) = ($1,$2);
} elsif ($pages =~ /^(\d+)$/){
($p1) = $1;
} elsif ($pages =~ /^([A-Za-z]+)(\d+)$/){
($prefix,$p1) = ($1,$2);
} elsif ($pages =~ /^([A-Za-z]+)(\d+)-(\d+)$/){
($prefix,$p1,$p2) = ($1,$2,$3);
} elsif ($pages =~ /^([A-Za-z]+)(\d+)-(\1)(\d+)$/){
($prefix,$p1,$p2) = ($1,$2,$4);
} elsif ($pages =~ /^(\d+)([A-Za-z]+)-(\d+)(\2)$/){
($p1,$suffix,$p2) = ($1,$2,$3);
} elsif ($pages =~ /^(\d+)([A-Za-z]+)$/){
($p1,$suffix) = ($1,$2);
} else {
warn "Cant parse pages '$pages'";
}
What would be the best way to solve this ? :-(
I was considering using Perl4Util ... but donot know how to access
($1,$2)
Rupinder
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>