File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/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


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
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: 172
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: 18108
    
  39


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: 172
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
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Regex pattern
 
Similar Threads
Regex pattern
Pattern Matching
regex
Email Validation code
Class Pattern - regular expressions