Solved

How to extract a portion of a string using regular expressions in Java

Posted on 2011-03-17
13
200 Views
Last Modified: 2012-05-11
0
Comment
Question by:Tolgar
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
  • 3
13 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 35157368
It looks like all that's happening is that you're appending

mycheck/report.html

..?
0
 

Author Comment

by:Tolgar
ID: 35157462
Yes. But in some cases I remove some portion of it like "sbtest/mylog_results.html" and in some other cases I don't need to remove.

So it is not actually just adding "mycheck/report.html" to the end of each link.

Hope this explains better

Thanks,
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 35157592
You'd have to define the rules, otherwise  it's impossible to say
0
Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

 

Author Comment

by:Tolgar
ID: 35157882
You are right. Here is the rule:

This part is fixed:

http://www-internal.mywork.com/mywork/devel/sandbox/ANYTEXT/

The rest is not clear. But let me try to make a rule.

Apqr_test_mytests/glnxa64
mytests_logs/02-23-2011/glnxa64
prequal_testlog/Apqr_j123456_mytests/glnxa64/sbtest/mylog_results.html
prequal_testlog/Apqr_j123456_mytests/glnxa64/sbtest/mylog_results.html
MERGE_mytests/glnxa64_2011-02_sidCopy


From these example cases the rule is:
Note: Parathesis can be ignored. They are not part of the rule. I just used them to group parts.

http://www-internal.mywork.com/mywork/devel/sandbox/ANYTEXT/ ( 1 or many ANYTEXT/ ) ( 1 or 0 ANYTEXT.html )


Thanks,
0
 
LVL 47

Expert Comment

by:for_yan
ID: 35158124


Still, not quite clear to me what is the rule:

I see, you start from:

http://www-internal.mywork.com/mywork/devel/sandbox/ANYTEXT/ ( 1 or many ANYTEXT/ ) ( 1 or 0 ANYTEXT.html )



You are adding mycheck/report.html
 but you are removing some part, where, I guess, there is already report.

But how would one know, say,  that "/sbtest/" should also be removed?


0
 

Author Comment

by:Tolgar
ID: 35158275
You are right.

The rule that I wrote is for the match only. Now from this match I want to remove the part to the beginning of sbtest if there is any sbtest. And add mycheck/report.html

If there is no sbtest then directly add mycheck/report.html.

And from the rule I have given before, we don't know how many directories we have (ANYTEXT/) until the x.html file.

I hope it is clear now.

Thanks,
0
 
LVL 86

Accepted Solution

by:
CEHJ earned 500 total points
ID: 35158334
The following should be OK then
int ix = 0;
if((ix =s.indexOf("/sbtest")) > -1) {
	s = s.substring(0, ix);
}
s += suffix;

Open in new window

0
 
LVL 47

Expert Comment

by:for_yan
ID: 35158335


Don't know about regular expressions, but this is how you can do it with regual java:

String s1 = s.substring(0, s.lastIndexOf("/"));
if(s1.endsWith("sbtest"))s1 = s1.substring(0,s1.lastIndexOf("/"));
s1 += "/mycheck/report.html";
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 35158597
'suffix' in my example is of course

"/mycheck/report.html"
0
 
LVL 47

Expert Comment

by:for_yan
ID: 35158656
Yes, you are right; CEHJ's is more general, I assumed that sbtest is always the last folder which contains the .html file
0
 

Author Comment

by:Tolgar
ID: 35158765
Thanks guys...
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 35158839
:)
0

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I have been reconstructing a PHP-based application that has grown into a full blown interface system over the last ten years by a developer that has now gone into business for himself building websites. I am not incredibly fond of writing PHP code o…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Video by: Michael
Viewers learn about how to reduce the potential repetitiveness of coding in main by developing methods to perform specific tasks for their program. Additionally, objects are introduced for the purpose of learning how to call methods in Java. Define …
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:

617 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question