Regexp's comparison

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-forum.com/.

Marcin Tyman wrote:

Hi guys,

I have string i.e:
a
b
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
a
d

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

···

--
Alex

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.

···

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-forum.com/\.

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

Do you want to find out how many lines have c? Or find out witch line
numbers c is on? Or do you have one string "acbccad" or "ascffbdrc" and you
are trying to find out if c is in that line? If that is what you are trying
to do then try this:

"acbccad".scan(/c/)

can you tell us more about what you are looking for? Sorry if this hasn't
helped.

···

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

--
sam

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-forum.com/.

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.

···

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...)

--
sam

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

···

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...)

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-forum.com/\.