aspose file tools*
The moose likes Beginning Java and the fly likes Regex pattern Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Regex pattern" Watch "Regex pattern" New topic
Author

Regex pattern

Jacob Sonia
Ranch Hand

Joined: Jun 28, 2009
Posts: 174
Hi,

I have this program



I want to extract firstname.lastname from the string, my regex is not helping me, please help me with inputs.

Thanks,
Sonia
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18981
    
  40


You have a few issues with your regex... meaning it doesn't do what you think it does. Basically....


1. The square brackets are use to define character classes. Meaning [ABC] is a single character that is either A, B, or C -- it doesn't mean A followed by B followed by C.

2. The ^ character within a character class negates the match. Meaning [^ABC] is a single character that is NOT A, B, or C -- it doesn't mean the beginning of input.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Jacob Sonia
Ranch Hand

Joined: Jun 28, 2009
Posts: 174
No, you did not get- i understand that doing [^http..] would remove http and my intention is the same, i just want firstname.lastname
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

Although you might think so based on the output, the expression "[^http:\\/\\/]" is not skipping over the String "http://".

As Henry explained, it is only matching a single character that is not h, or t, or p, or :, or /.

So when you run this using your example of "http://firstname.lastname...", it looks like it's working, because the first single character that meets this criteria happens to be f.

But if your String was "http://phil.spector...", then the p and the h would also be skipped over, and the first single character that meets this criteria would be i.

After matching that first character, the expression ".*" matches any character zero or more times, and that's what's giving you the rest of your output. The attempts to negate ".blub.com/sdfsdf" are having no effect.


"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
sscce.org
 
Consider Paul's rocket mass heater.
 
subject: Regex pattern