Solved

Substr

Posted on 1998-09-05
4
285 Views
Last Modified: 2010-07-27
I have some srings like
<br><a href="test.htm"><b>Some Text</b></a>
and
<br><a href="testgetmore.htm"><b>More Text</b></a>

i want to get the substring after <b> and before </b> but the position of "<b>" is on a defrent position in the string
how do i get the position of the <b> and how do u use substr?

Thanks

0
Comment
Question by:delpro
[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
  • 2
  • 2
4 Comments
 
LVL 84

Expert Comment

by:ozo
ID: 1204700
($substring) = $string =~ m|<b>(.*?)</b>|;

#to get the position of the <b>
$position = index $string,'<b>';
#to use substr
$substring = substr $string,$position+3;
#or
$substring = substr $string,$position+3,(index $string,'</b>')-$position-3;
0
 
LVL 28

Accepted Solution

by:
sybe earned 0 total points
ID: 1204701
sub ExtractBetween
{
  local($string, $tag1, $tag2) = @_;
  $ind1 = index($string, $tag1) + length($tag1);
  $ind2 = index($string, $tag2);
  $string = substr($string,$ind1,$ind2-$ind1);
  return $string;
}


$yourstring = '<br><a href="test.htm"><b>Some Text</b></a>';
$extractedstring = ExtractBetween($yourstring,'<b>','</b>');

0
 
LVL 84

Expert Comment

by:ozo
ID: 1204702
#If you're going to use it in a sub, then perhaps
 $ind2 = index($string, $tag2);
#would be be safer as
 $ind2 = index($string, $tag2, $ind1);
#so that
ExtractBetween('</b><br><a href="test.htm"><b>Some Text</b>',<b>','<');
#still works

#although for literal tags,
($extractedstring) = $yourstring =~ m|<b>(.*?)</b>|;
#still seems easier
0
 
LVL 28

Expert Comment

by:sybe
ID: 1204703
I wrote my answer as ozo posted his comment, so i did not see his first comment.
Anyway, I agree with ozo that his answer is easier.

ozo, you're a real perl-magician !

0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
Six Sigma Control Plans

729 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