• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Regex start() + group() question

 
Paul Stat
Ranch Hand
Posts: 50
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Given:



And the command line:

java Regex2 "\d*" ab34ef

What is the result?

A. 234
B. 334
C. 2334
D. 0123456
E. 01234456
F. 12334567
G. Compilation fails

KS + BB 2006

Now I read this as find digits 0 to many, so that would match 34. Start() prints the start position of where the match is (2) and group prints what it's matched (34). So I get the answer A. 234

But the answers at the back say E. 01234456! How? I don't understand.
 
M Srilatha
Ranch Hand
Posts: 137
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

Please refer to the following link:
how Regex works

Explanation is given very clearly!



 
Paul Stat
Ranch Hand
Posts: 50
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Aha I think i get it, because it's 0 or more, it will return the start of no match aswell. So you have



The position 6 thing is still a bit confusing mind you

 
Jia Tan
Ranch Hand
Posts: 32
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Just ran it in Cygwin and it gave me empty as the result. The version I have is :

$ java -version
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)

Ran under dos worked just fine. How come?
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic