Oddity with RegExp


#1

I’m clearly missing something! I have a log analysis application that
is written in Ruby and which uses REs to decide how to process log
records.

I entered a pattern into one of my rules and it always failed to match
so I fired up irb and set about reducing the pattern to something
minimal:

[rful011@pateke selms-svn]$ irb
irb(main):001:0> a = ‘NT AUTHORITY\SYSTEM’
=> “NT AUTHORITY\SYSTEM”
irb(main):004:0> a =~ /AUTHORITY/
=> 3
irb(main):005:0> a =~ /NT AUTHORITY/
=> 0
irb(main):006:0> a =~ / AUTHORITY/
=> 2
irb(main):007:0> a =~ /^NT /
=> 0
irb(main):008:0> a =~ /NT /
=> 0
irb(main):009:0> a =~ /NT/
=> 0
irb(main):010:0> a =~ /N/
=> 0
irb(main):011:0> a =~ /T/
=> 1

Is the ‘’ in the string upsetting things?

Cheers and thanks,

Russell


#2

Russell,

=> “NT AUTHORITY\SYSTEM”
irb(main):009:0> a =~ /NT/
=> 0
irb(main):010:0> a =~ /N/
=> 0
irb(main):011:0> a =~ /T/
=> 1

Is the ‘’ in the string upsetting things?

No, you are just misinterpreting the results.

irb(main):001:0> a = ‘NT AUTHORITY\SYSTEM’
=> “NT AUTHORITY\SYSTEM”
irb(main):002:0> a =~ /N/
=> 0
irb(main):003:0> a =~ /X/
=> nil

Zero is a valid string index, nil is not.

- Warren B.

#3

Russell F. wrote:

=> “NT AUTHORITY\SYSTEM”
irb(main):009:0> a =~ /NT/
=> 0
irb(main):010:0> a =~ /N/
=> 0
irb(main):011:0> a =~ /T/
=> 1
I’m not sure what you’re expecting here - all these patterns are
matching. Have you got a failing pattern?


#4

Warren B. wrote:

Zero is a valid string index, nil is not.

Thanks Warren! Like I said I was clearly missing something. I blame my
perl heritage :wink:

Russell