[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Regular expression

Arun Kumar

3/23/2009 6:50:00 AM

Hi,
I know that what i'm going to ask is for the solution for a simple
problem. But as I'm new to Ruby I have not learnt a lot about regular
expressions in Ruby.

Can anybody tell me how to extract all the contents which are included
inside the '<html>' and '</html>' tag and also to extract the text given
in between the '<a>' and '</a>' tag using regular expression. I know it
can be extracted using the 'scan' method but I dont know what should be
the matching patterns or expressions. Can anybody pls help me

Regards
Arun
--
Posted via http://www.ruby-....

7 Answers

Ryan Davis

3/23/2009 7:21:00 AM

0


On Mar 22, 2009, at 23:49 , Arun Kumar wrote:

> Hi,
> I know that what i'm going to ask is for the solution for a simple
> problem. But as I'm new to Ruby I have not learnt a lot about regular
> expressions in Ruby.
>
> Can anybody tell me how to extract all the contents which are included
> inside the '<html>' and '</html>' tag and also to extract the text
> given
> in between the '<a>' and '</a>' tag using regular expression. I know
> it
> can be extracted using the 'scan' method but I dont know what should
> be
> the matching patterns or expressions. Can anybody pls help me

regexps are about the worst thing to use in this case. Look at this
instead:

http://mechanize.rubyforge.org/files/GUID...


Arun Kumar

3/23/2009 8:18:00 AM

0

Ryan Davis wrote:
> On Mar 22, 2009, at 23:49 , Arun Kumar wrote:
>
>> can be extracted using the 'scan' method but I dont know what should
>> be
>> the matching patterns or expressions. Can anybody pls help me
>
> regexps are about the worst thing to use in this case. Look at this
> instead:
>
> http://mechanize.rubyforge.org/files/GUID...

I know that using mechanize or hpricot is a far better option in this
case. But i'm just asking as a matter of curiosity to know about regexps

Regards
ArunKumar
--
Posted via http://www.ruby-....

7stud --

3/23/2009 9:38:00 AM

0

Arun Kumar wrote:
> Hi,
> I know that what i'm going to ask is for the solution for a simple
> problem. But as I'm new to Ruby I have not learnt a lot about regular
> expressions in Ruby.
>
> Can anybody tell me how to extract all the contents which are included
> inside the '<html>' and '</html>' tag and also to extract the text given
> in between the '<a>' and '</a>' tag using regular expression. I know it
> can be extracted using the 'scan' method but I dont know what should be
> the matching patterns or expressions. Can anybody pls help me
>
> Regards
> Arun

s = "<a>hello world</a>"
new_s = s.gsub(/<.*?>/, "")
puts new_s

--output:--
hello world




html = DATA.read()
regex = Regexp.new("<html>(.*)</html>", Regexp::MULTILINE)
puts html[regex, 1]

__END__
<html>
<head>
<title>html page</title>
</head>
<body>
<div>hello</div>
<div>world</div>
<div>goodbye</div>
</body>
</html>


--output:--
<head>
<title>html page</title>
</head>
<body>
<div>hello</div>
<div>world</div>
<div>goodbye</div>
</body>


In the expression:

html[regex, 1]

The 1 says to return the first parenthesized group in the regex.




--
Posted via http://www.ruby-....

7stud --

3/23/2009 9:41:00 AM

0

7stud -- wrote:

> regex = Regexp.new("<html>(.*)</html>", Regexp::MULTILINE)

...oh, yeah. Normally, a . matches any character except a newline. The
regex .* matches any character 0 or more times--but to get it to match
newlines as well, you have to specify Regxp::MULTILINE.
--
Posted via http://www.ruby-....

7stud --

3/23/2009 9:45:00 AM

0

7stud -- wrote:
> In the expression:
>
> html[regex, 1]
>
> The 1 says to return the first parenthesized group in the regex.

To be a little clearer, the 1 says to return whatever matched the first
parenthesized group in the regex.






--
Posted via http://www.ruby-....

Yaser Sulaiman

3/23/2009 10:00:00 AM

0

[Note: parts of this message were removed to make it a legal post.]

On Mon, Mar 23, 2009 at 9:49 AM, Arun Kumar <arunkumar@innovaturelabs.com>wrote:

> Can anybody tell me how to extract all the contents which are included
> inside the '<html>' and '</html>' tag and also to extract the text given
> in between the '<a>' and '</a>' tag using regular expression. I know it
> can be extracted using the 'scan' method but I dont know what should be
> the matching patterns or expressions. Can anybody pls help me


Let's assume we have the following content:

<html>
<body>
<p>
Want a Ruby regular expression editor? Check out <a href="
http://www.rubular.com/">Rubular....
</p>
</body>
</html>

Here are two quick and dirty regexps:

/<html>(.*)<\/html>/m
This regexp will capture anything between an opening html tag and a closing
one. the /m option specifies "Multiline Mode: "." will match any character
including a newline.
For our content, it will capture:
<body>
<p>
Want a Ruby regular expression editor? Check out <a href="
http://www.rubular.com/">Rubular....
</p>
</body>

/<a.*>(.*)<\/a>/
This regexp will capture the text between an opening anchor element and a
closing one. The first ".*" is there to deal with href and any other
attribute. You might wanna throw the /m option in there too.
For our content, it will capture:
Rubular

On Mon, Mar 23, 2009 at 11:18 AM, Arun Kumar <arunkumar@innovaturelabs.com>
wrote:

> I know that using mechanize or hpricot is a far better option in this
> case. But i'm just asking as a matter of curiosity to know about regexps


Dare I say, a man should use regexps if only to satisfy his curiosity. ;-)

Regards,
Yaser

arjun ghosh

3/23/2009 12:19:00 PM

0

[Note: parts of this message were removed to make it a legal post.]

Check out the site http://www.ru...
It is very helpful in solving RegEx problems

ciao,
Arjun
http://arjunghosh.wor...
twitter.com/arjunghosh

On Mon, Mar 23, 2009 at 12:19 PM, Arun Kumar
<arunkumar@innovaturelabs.com>wrote:

> Hi,
> I know that what i'm going to ask is for the solution for a simple
> problem. But as I'm new to Ruby I have not learnt a lot about regular
> expressions in Ruby.
>
> Can anybody tell me how to extract all the contents which are included
> inside the '<html>' and '</html>' tag and also to extract the text given
> in between the '<a>' and '</a>' tag using regular expression. I know it
> can be extracted using the 'scan' method but I dont know what should be
> the matching patterns or expressions. Can anybody pls help me
>
> Regards
> Arun
> --
> Posted via http://www.ruby-....
>
>