[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

Regexp's comparison

Marcin Tyman

7/27/2007 12:29:00 PM

Hi guys,

I have string i.e:
a
b
c
c
c
a
c
d

For example I would like to match all c lines with regexp. How can I
create the regexp if c lines can be ordered differently i.e:
a
c
b
c
c
a
d

I will be appreciated for any help

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

5 Answers

Alex Young

7/27/2007 12:52:00 PM

0

Marcin Tyman wrote:
> Hi guys,
>
> I have string i.e:
> a
> b
> c
> c
> c
> a
> c
> d
>
> For example I would like to match all c lines with regexp. How can I
> create the regexp if c lines can be ordered differently i.e:
> a
> c
> b
> c
> c
> a
> d

Not entirely sure I understand the question. What are you expecting the
output to be in each case?

--
Alex

Robert Dober

7/27/2007 12:55:00 PM

0

On 7/27/07, Marcin Tyman <m.tyman@interia.pl> wrote:
> Hi guys,
>
> I have string i.e:
> a
> b
> c
> c
> c
> a
> c
> d
>
> For example I would like to match all c lines with regexp. How can I
> create the regexp if c lines can be ordered differently i.e:
> a
> c
> b
> c
> c
> a
> d
>
> I will be appreciated for any help
>
> Thanks
> --
> Posted via http://www.ruby-....
>
>
Marcin I have no idea what you want achieve? Do you have lines of
strings or one string you have written into different lines?
What is the output/result you want from the input?

My first wild guess is that you should look at Enumerable#grep.

R.

--
[...] as simple as possible, but no simpler.
-- Attributed to Albert Einstein

Marcin Tyman

7/27/2007 1:15:00 PM

0

Guys,
I'm going to search for iptables entries for some IP's. The worst thing
is that rules in iptables can be each time in different order. I need to
check whether all desired rules for particular IP are in iptables.
Moreover I need to find out if there are no more entries than expected.

Assume that a, b, c, d etc.. represent one line in iptable (one entry -
a for IP = x.x.x.x, b for y.y.y.y etc). I need to check whether 3 (not
only one and no more than 3) rules for ip x.x.x.x are in iptables but
these rules (lines) each time may be in different positions (other rules
may be placed between them etc...)


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

Marcin Tyman

7/27/2007 1:31:00 PM

0

Sam Morrison wrote:
> On 7/27/07, Marcin Tyman <m.tyman@interia.pl> wrote:
>>
>>
>> Assume that a, b, c, d etc.. represent one line in iptable (one entry -
>> a for IP = x.x.x.x, b for y.y.y.y etc). I need to check whether 3 (not
>> only one and no more than 3) rules for ip x.x.x.x are in iptables but
>> these rules (lines) each time may be in different positions (other rules
>> may be placed between them etc...)
>
>
> You can do the scan with lenght, like this:
>
> text = "adcdcbcdc"
> text.scan(/c/).length
>
> this will return the total times c shows up in your string.

Yeah,
I've found it. Thanks for help. I think this would solve all issues in
my code.
--
Posted via http://www.ruby-....

Robert Klemme

7/27/2007 2:00:00 PM

0

2007/7/27, Marcin Tyman <m.tyman@interia.pl>:
> Guys,
> I'm going to search for iptables entries for some IP's. The worst thing
> is that rules in iptables can be each time in different order. I need to
> check whether all desired rules for particular IP are in iptables.
> Moreover I need to find out if there are no more entries than expected.
>
> Assume that a, b, c, d etc.. represent one line in iptable (one entry -
> a for IP = x.x.x.x, b for y.y.y.y etc). I need to check whether 3 (not
> only one and no more than 3) rules for ip x.x.x.x are in iptables but
> these rules (lines) each time may be in different positions (other rules
> may be placed between them etc...)

I would not do any sorting here. Rather I'd fill a Hash with IPs as
keys and arrays of rules as values. That way you do not have to
bother with ordering and also it's faster (probably not an issue in
your case). If you just want to count rules then you only need a
counter as value.

Kind regards

robert