Solved

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

Posted on 2011-03-17
13
195 Views
Last Modified: 2012-05-11
0
Comment
Question by:Tolgar
  • 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
 

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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
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
 

Author Comment

by:Tolgar
ID: 35158580
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

by Batuhan Cetin Regular expression is a language that we use to edit a string or retrieve sub-strings that meets specific rules from a text. A regular expression can be applied to a set of string variables. There are many RegEx engines for u…
By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.

919 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

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now