10 Java Regular Expression Examples You Should Know

By mkyong – November 18, 2009

Regular expression is an art of the programing, it’s hard to debug , learn and understand, but the powerful features are still attract many developers to code regular expression. Let’s explore the following 10 practical regular expression ~ enjoy 🙂

1. Username Regular Expression Pattern

^[az09_]{3,15}$

^ # Start of the line

[az09_] # Match characters and symbols in the list, a-z, 0-9 , underscore , hyphen

{3,15} # Length at least 3 characters and maximum length of 15

$ # End of the line

==> See the explanation and example here

2. Password Regular Expression Pattern

((?=.*\d)(?=.*[az])(?=.*[AZ])(?=.*[@#$%]).{6,20})

( # Start of group

(?=.*\d) # must contains one digit from 0-9

(?=.*[az]) # must contains one lowercase characters

(?=.*[AZ]) # must contains one uppercase characters

(?=.*[@#$%]) # must contains one special symbols in the list “@#$%”

. # match anything with previous condition checking

{6,20} # length at least 6 characters and maximum of 20

) # End of group

==> See the explanation and example here

3. Hexadecimal Color Code Regular Expression Pattern

^#([AFaf09]{6}|[AFaf09]{3})$

^ #start of the line

# # must constains a “#” symbols

( # start of group #1

[AFaf09]{6} # any strings in the list, with length of 6

| # ..or

[AFaf09]{3} # any strings in the list, with length of 3

) # end of group #1

$ #end of the line

==> See the explanation and example here

4. Email Regular Expression Pattern

^[_AZaz09]+(\\.[_AZaz09]+)*@[AZaz09]+

(\\.[AZaz09]+)*(\\.[AZaz]{2,})$

^ #start of the line

[_AZaz09]+ # must start with string in the bracket [ ], must contains one or more (+)

( # start of group #1

\\.[_AZaz09]+ # follow by a dot “.” and string in the bracket [ ], must contains one or more (+)

)* # end of group #1, this group is optional (*)

@ # must contains a “@” symbol

[AZaz09]+ # follow by string in the bracket [ ], must contains one or more (+)

( # start of group #2 – first level TLD checking

\\.[AZaz09]+ # follow by a dot “.” and string in the bracket [ ], must contains one or more (+)

)* # end of group #2, this group is optional (*)

( # start of group #3 – second level TLD checking

\\.[AZaz]{2,} # follow by a dot “.” and string in the bracket [ ], with minimum length of 2

) # end of group #3

$ #end of the line

==> See the explanation and example here

5. Image File Extension Regular Expression Pattern

([^\s]+(\.(?i)(jpg|png|gif|bmp))$)

( #Start of the group #1

[^\s]+ # must contains one or more anything (except white space)

( # start of the group #2

\. # follow by a dot “.”

(?i) # ignore the case sensitive checking

( # start of the group #3

jpg # contains characters “jpg”

| # ..or

png # contains characters “png”

| # ..or

gif # contains characters “gif”

| # ..or

bmp # contains characters “bmp”

) # end of the group #3

) # end of the group #2

$ # end of the string

) #end of the group #1

==> See the explanation and example here

6. IP Address Regular Expression Pattern

^([01]?\\d\\d?|2[04]\\d|25[05])\\.([01]?\\d\\d?|2[04]\\d|25[05])\\.

([01]?\\d\\d?|2[04]\\d|25[05])\\.([01]?\\d\\d?|2[04]\\d|25[05])$

^ #start of the line

( # start of group #1

[01]?\\d\\d? # Can be one or two digits. If three digits appear, it must start either 0 or 1

# e.g ([09], [09][09],[01][09][09])

| # …or

2[04]\\d # start with 2, follow by 0-4 and end with any digit (2[04][09])

| # …or

25[05] # start with 2, follow by 5 and end with 0-5 (25[05])

) # end of group #2

\. # follow by a dot “.”

…. # repeat with 3 time (3x)

$ #end of the line

==> See the explanation and example here

7. Time Format Regular Expression Pattern

Time in 12-Hour Format Regular Expression Pattern

(1[012]|[19]):[05][09](\\s)?(?i)(am|pm)

( #start of group #1

1[012] # start with 10, 11, 12

| # or

[19] # start with 1,2,…9

) #end of group #1

: # follow by a semi colon (:)

[05][09] # follow by 0..5 and 0..9, which means 00 to 59

(\\s)? # follow by a white space (optional)

(?i) # next checking is case insensitive

(am|pm) # follow by am or pm

==> See the explanation and example here

Time in 24-Hour Format Regular Expression Pattern

([01]?[09]|2[03]):[05][09]

( #start of group #1

[01]?[09] # start with 0-9,1-9,00-09,10-19

| # or

2[03] # start with 20-23

) #end of group #1

: # follow by a semi colon (:)

[05][09] # follow by 0..5 and 0..9, which means 00 to 59

==> See the explanation and example here

8. Date Format (dd/mm/yyyy) Regular Expression Pattern

(0?[19]|[12][09]|3[01])/(0?[19]|1[012])/((19|20)\\d\\d)

( #start of group #1

0?[19] # 01-09 or 1-9

| # ..or

[12][09] # 10-19 or 20-29

| # ..or

3[01] # 30, 31

) #end of group #1

/ # follow by a “/”

( # start of group #2

0?[19] # 01-09 or 1-9

| # ..or

1[012] # 10,11,12

) # end of group #2

/ # follow by a “/”

( # start of group #3

(19|20)\\d\\d # 19[09][09] or 20[09][09]

) # end of group #3

==> See the explanation and example here

9. HTML tag Regular Expression Pattern

<(“[^”]*”|'[^’]*’|[^'”>])*>

< #start with opening tag “<”

( # start of group #1

“[^”]*” # only two double quotes are allow – “string”

| # ..or

‘[^’]*’ # only two single quotes are allow – ‘string’

| # ..or

[^'”>] # cant contains one single quotes, double quotes and “>”

) # end of group #1

* # 0 or more

> #end with closing tag “>”

==> See the explanation and example here

10. HTML links Regular Expression Pattern

HTML A tag Regular Expression Pattern

(?i)<a([^>]+)>(.+?)</a>

( #start of group #1

?i # all checking are case insensive

) #end of group #1

<a #start with “<a”

( # start of group #2

[^>]+ # anything except (“>”), at least one character

) # end of group #2

> # follow by “>”

(.+?) # match anything

</a> # end with “</a>

Extract HTML link Regular Expression Pattern

\s*(?i)href\s*=\s*(\”([^”]*\”)|'[^’]*’|([^'”>\s]+));

\s* #can start with whitespace

(?i) # all checking are case insensive

href # follow by “href” word

\s*=\s* # allows spaces on either side of the equal sign,

( # start of group #1

“([^”]*”) # only two double quotes are allow – “string”

| # ..or

‘[^’]*’ # only two single quotes are allow – ‘string’

| # ..or

([^'”>]+) # cant contains one single / double quotes and “>”

) # end of group #1

==> See the explanation and example here

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s