Copyright ® (1997-2005) EDMGROUP Pty Ltd - EZY Prolog Reference

 EZY Regular Expressions

main page

 

EZY Prolog has built-in support for regular expressions.

 

Below is sample of EZY Prolog programs which demonstrates how to use regular expressions and regular expressions results.

Click here for program source

 

Output of the regular expressions test

 

 

Regular Expression:

String

Results

-?[0-9]+

Valid Integer -93334

Syntax emacs, Found: {-93334} at 15 , Len 6

(\+|-)?[0-9]*\.[0-9]*([Ee](\+|-)?[0-9]+)

Valid Real Value +734.11e-1234

Syntax awk, Found: {+734.11e-1234} at 18 , Len 13

http:+(\\|//)+([a-zA-Z_0-9.]*+(\\|/))+([a-zA-Z_0-9]*).htm*

URL in form http://www.ser.com/dir/file.htm

Syntax awk, Found: {http://www.ser.com/dir/file.htm} at 13 , Len 31

(\([0-9]{3}\))+(-| )+([0-9]{3})+(-| )+([0-9]{4})

Valid Phone number (415)-999-8888

Syntax posix_awk, Found: {(415)-999-8888} at 38 , Len 14

(\([0-9]{3}\))+(-| )+([0-9]{3})+(-| )+([0-9]{4})

Valid Phone number (415) 999-8888

Syntax posix_awk, Found: {(415) 999-8888} at 38 , Len 14

([0-9]{2})([ ]+)([a-z]+)([ ]+)([1-2]([0-9]{3}))

Valid date DD Month Year 12 February 2001

Syntax posix_awk, Found: {12 February 2001} at 44 , Len 19

([0-1][0-2](\\|/|-|.))([0-9]{2}(\\|/|-|.))([1-2][0-9]{3})

Valid date MM-DD-YYYY 02/02/2000

Syntax posix_awk, Found: {02/02/2000} at 41 , Len 10

([0-1][0-2](\\|/|-|.))([0-9]{2}(\\|/|-|.))([1-2][0-9]{3})

Valid date MM-DD-YYYY 12-02/2000

Syntax posix_awk, Found: {12-02/2000} at 41 , Len 10

([0-1][0-2](\\|/|-|.))([0-9]{2}(\\|/|-|.))([1-2][0-9]{3})

Invalid date MM-DD-YYYY 22/02/2000

Fail {Invalid date MM-DD-YYYY 22/02/2000}

Chapter+[ ][0-9]

Chapter followed by a single whitespace character (space, tab, newline, etc), followed by a single digit Chapter 9 bla-bla

Syntax emacs, Found: {Chapter 9} at 106 , Len 9

Chapter+[ ]\w*

Chapter followed by a space, followed by a word character

Syntax emacs, Found: {Chapter followed} at 1 , Len 16

((jan[a-z]*)|(feb[a-z]*)|(mar[a-z]*)|(apr[a-z]*)|(may)|(ju[a-z]*)|(aug[a-z]*)|(sep[a-z]*)|(oct[a-z]*)|(nov[a-z]*)|(dec[a-z]*))+([ ]+|\.|-)+([0-9]{2}([ ]+|.|-))(([1-2][0-9]{3})|[0-9]{2})

Line with march 12 1999 or mar 12 1999

Syntax posix_awk, Found: {march 12 1999} at 29 , Len 13

((jan[a-z]*)|(feb[a-z]*)|(mar[a-z]*)|(apr[a-z]*)|(may)|(ju[a-z]*)|(aug[a-z]*)|(sep[a-z]*)|(oct[a-z]*)|(nov[a-z]*)|(dec[a-z]*))+([ ]+|\.|-)+([0-9]{2}([ ]+|.|-))(([1-2][0-9]{3})|[0-9]{2})

Text with march 12, 99 or march 12, 99

Fail {Text with march 12, 99 or march 12, 99}

((jan[a-z]*)|(feb[a-z]*)|(mar[a-z]*)|(apr[a-z]*)|(may)|(ju[a-z]*)|(aug[a-z]*)|(sep[a-z]*)|(oct[a-z]*)|(nov[a-z]*)|(dec[a-z]*))+([ ]+|\.|-)+([0-9]{2}([ ]+|.|-))(([1-2][0-9]{3})|[0-9]{2})

Para with mar 12, 1999 or mar 12, 99

Fail {Para with mar 12, 1999 or mar 12, 99}

(d{1,2}):(\d\d)\s*(am|pm|\s*)

04:30 pm

Fail {04:30 pm}

(\d{1,2}):(\d\d)\s*(am|pm|\s*)

12:45am

Fail {12:45am}

(\d{1,2}):(\d\d)\s*(am|pm|\s*)

14:45

Fail {14:45}

ab{2}

matches a string that has an a followed by exactly two b's abb

Syntax posix_awk, Found: {abb} at 78 , Len 3

ab{2,}

there are at least two b's "abb", "abbbb", etc.)

Syntax posix_awk, Found: {abb} at 47 , Len 3

ab{3,5}

from three to five b's ("abbb", "abbbb", or "abbbbb")

Syntax posix_awk, Found: {abbb} at 44 , Len 4

a?b+

a possible a followed by one or more b's ending a string

Syntax emacs, Found: {b} at 8 , Len 1

a(bc)*

matches a string that has an a followed by zero or more copies of the sequence bc

Syntax awk, Found: {a} at 2 , Len 1

a(bc){1,5}

one through five copies of bc such as abcbc

Syntax posix_awk, Found: {abcbc} at 64 , Len 5

hi|hello

matches a string that has either hi or hello in it;

Syntax awk, Found: {hi} at 52 , Len 2

(b|cd)ef

a string that has either bef or cdef

Syntax awk, Found: {bef} at 44 , Len 3

(a|b)*c

a string that has bc sequence of alternating a's and b's ending in a c

Syntax awk, Found: {c} at 25 , Len 1

(a|b)*c

a string that has ac sequence of alternating a's and b's ending in a c

Syntax awk, Found: {c} at 25 , Len 1

a.[0-9]

matches a string that has an a followed by one character and a digit a0234

Syntax emacs, Found: {a02} at 88 , Len 3

a..[0-9]

matches a string that has an a followed by one character and a digit a0234

Syntax emacs, Found: {a023} at 88 , Len 4

.{5}

a string with exactly 5 characters

Syntax posix_awk, Found: {a str} at 1 , Len 5

[0-9]%

a string that has a single digit before a percent sign 6%

Syntax emacs, Found: {674} at 2 , Len %

,[a-zA-Z0-9]

a string that ends in a comma followed by an alphanumeric character ,C

Syntax emacs, Found: {,C} at 87 , Len 2

%[^a-zA-Z]%

matches a string with a character that is not a letter between two percent signs %6%

Syntax emacs, Found: { 1003} at % , Len %

$([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?

money as $10000.00

Syntax awk, Found: {$10000} at 10 , Len 6

$([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?

money as $10,000.00

Syntax awk, Found: {$10} at 10 , Len 3

$([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?

money without the cents: $10000

Syntax awk, Found: {$10000} at 26 , Len 6

$([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?

money without the cents: $10,000

Syntax awk, Found: {$10} at 26 , Len 3

\([A-Za-z]\:\)\([A-Za-z]+\)\.\([A-Za-z]+\)

MS DOS file names c:file.txt

Syntax emacs, Found: {c:file.txt} at 19 , Len 10

[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*

Find email address username@servername.com

Syntax awk, Found: {username@servername.com} at 38 , Len 23

[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*

Find email address name.department@servername.com

Syntax awk, Found: {name.department@servername.com} at 38 , Len 30

Chapter [0-9]

Chapter X, Chapter 1, bla-bla-bla

Syntax emacs, Found: {Chapter 1} at 12 , Len 9

Chapter [^0-9]

Chapter 1, Chapter X, bla-bla-bla

Syntax emacs, Found: {Chapter X} at 12 , Len 9

a+x

ax, bx, aax, abx, bax, bbx, aaax, aabx, abax, abbx, baax, babx, bbax, bbbx, aaaax ....

Syntax emacs, Found: {ax} at 1 , Len 2

[abcde]x

ax, bx, cx, dx, ex

Syntax emacs, Found: {ax} at 1 , Len 2

[a-e]x

ax, bx, cx, dx, ex

Syntax emacs, Found: {ax} at 1 , Len 2

[-ae]x

ax, bx, cx, dx, ex

Syntax emacs, Found: {ax} at 1 , Len 2

[ae-]x

-x, ax, ex

Syntax emacs, Found: {-x} at 1 , Len 2

[ae-]x

-x, ax, ex,

Syntax emacs, Found: {-x} at 2 , Len 2

[a-e-[bd]]x

ax, cx, ex

Fail {ax, cx, ex}

[^0-9]x

any non-digit character followed by the character ZY6x ZCVx BBB

Syntax emacs, Found: {Vx} at 59 , Len 2

[0-9]x

any digit character followed by the character ZY6x ZCVx BBB

Syntax emacs, Found: {6x} at 50 , Len 2

\Dx

any non-digit character followed by the character Bx9 BBxF

Fail { any non-digit character followed by the character Bx9 BBxF}

.*abc.*

1x2abc, abc1x2, z3456abchooray ....

Syntax emacs, Found: {1x2abc, abc1x2, z3456abchooray ....} at 1 , Len 35

[0-9][0-9]

two digits 98 bbbb

Syntax emacs, Found: {98} at 12 , Len 2

ab{2}x

abbx

Syntax posix_awk, Found: {abbx} at 1 , Len 4

ab{2,4}x

abbx, abbbx, abbbbx

Syntax posix_awk, Found: {abbx} at 1 , Len 4

ab{2,}x

abbx, abbbx, abbbbx ....

Syntax posix_awk, Found: {abbx} at 1 , Len 4

(ab){2}x

ababx

Syntax posix_awk, Found: {ababx} at 1 , Len 5

a*

aaabc

Syntax emacs, Found: {aaa} at 1 , Len 3

abc

abc

Syntax emacs, Found: {abc} at 1 , Len 3

abc

xbc

Fail {xbc}

abc

axc

Fail {axc}

abc

abx

Fail {abx}

abc

xabcy

Syntax emacs, Found: {abc} at 2 , Len 3

abc

ababc

Syntax emacs, Found: {abc} at 3 , Len 3

ab*c

abc

Syntax emacs, Found: {abc} at 1 , Len 3

ab*bc

abc

Syntax emacs, Found: {abc} at 1 , Len 3

ab*bc

abbc

Syntax emacs, Found: {abbc} at 1 , Len 4

ab*bc

abbbbc

Syntax emacs, Found: {abbbbc} at 1 , Len 6

ab+bc

abbc

Syntax emacs, Found: {abbc} at 1 , Len 4

ab+bc

abc

Fail {abc}

ab+bc

abq

Fail {abq}

ab+bc

abbbbc

Syntax emacs, Found: {abbbbc} at 1 , Len 6

ab?bc

abbc

Syntax emacs, Found: {abbc} at 1 , Len 4

ab?bc

abc

Syntax emacs, Found: {abc} at 1 , Len 3

ab?bc

abbbbc

Fail {abbbbc}

ab?c

abc

Syntax emacs, Found: {abc} at 1 , Len 3

^abc$

abc

Syntax emacs, Found: {abc} at 1 , Len 3

^abc$

abcc

Fail {abcc}

^abc

abcc

Syntax emacs, Found: {abc} at 1 , Len 3

^abc$

aabc

Fail {aabc}

abc$

aabc

Syntax emacs, Found: {abc} at 2 , Len 3

^

abc

Fail {abc}

$

abc

Fail {abc}

a.c

abc

Syntax emacs, Found: {abc} at 1 , Len 3

a.c

axc

Syntax emacs, Found: {axc} at 1 , Len 3

a.*c

axyzc

Syntax emacs, Found: {axyzc} at 1 , Len 5

a.*c

axyzd

Fail {axyzd}

a[bc]d

abc

Fail {abc}

a[bc]d

abd

Syntax emacs, Found: {abd} at 1 , Len 3

a[b-d]e

abd

Fail {abd}

a[b-d]e

ace

Syntax emacs, Found: {ace} at 1 , Len 3

a[b-d]

aac

Syntax emacs, Found: {ac} at 2 , Len 2

a[-b]

a-

Syntax emacs, Found: {a-} at 1 , Len 2

a[b-]

a-

Syntax emacs, Found: {a-} at 1 , Len 2

[k]

ab

Fail {ab}

a[b-a]

-

Fail {-}

a[]b

-

Fail {-}

a[

-

Fail {-}

a]

a]

Syntax emacs, Found: {a]} at 1 , Len 2

a[]]b

a]b

Syntax emacs, Found: {a]b} at 1 , Len 3

a[^bc]d

aed

Syntax emacs, Found: {aed} at 1 , Len 3

a[^bc]d

abd

Fail {abd}

a[^-b]c

adc

Syntax emacs, Found: {adc} at 1 , Len 3

a[^-b]c

a-c

Fail {a-c}

a[^]b]c

a]c

Fail {a]c}

a[^]b]c

adc

Syntax emacs, Found: {adc} at 1 , Len 3

ab|cd

abc

Syntax awk, Found: {ab} at 1 , Len 2

ab|cd

abcd

Syntax awk, Found: {ab} at 1 , Len 2

()ef

def

Syntax awk, Found: {ef} at 2 , Len 2

()*

-

Fail {-}

*a

-

Fail {-}

^*

-

Fail {-}

$*

-

Fail {-}

(*)b

-

Fail {-}

$b

b

Fail {b}

a\

-

Fail {-}

a\(b

a(b

Syntax awk, Found: {a(b} at 1 , Len 3

a\(*b

ab

Syntax awk, Found: {ab} at 1 , Len 2

a\(*b

a((b

Syntax awk, Found: {a((b} at 1 , Len 4

a\\b

a\b

Syntax emacs, Found: {a\b} at 1 , Len 3

abc)

-

Fail {-}

(abc

-

Fail {-}

((a))

abc

Syntax awk, Found: {a} at 1 , Len 1

(a)b(c)

abc

Syntax awk, Found: {abc} at 1 , Len 3

a+b+c

aabbabc

Syntax emacs, Found: {abc} at 5 , Len 3

a**

-

Fail {-}

a*?

-

Fail {-}

(a*)*

-

Fail {-}

(a*)+

-

Fail {-}

(a|)*

-

Fail {-}

(a*|b)*

-

Fail {-}

(a+|b)*

ab

Syntax awk, Found: {ab} at 1 , Len 2

(a+|b)+

ab

Syntax awk, Found: {ab} at 1 , Len 2

(a+|b)?

ab

Syntax awk, Found: {a} at 1 , Len 1

[^ab]*

cde

Syntax emacs, Found: {cde} at 1 , Len 3

(^)*

-

Fail {-}

(ab|)*

-

Fail {-}

)(

-

Fail {-}

 

abc

Fail {abc}

abc

 

Fail {}

a*

 

Fail {}

abcd

abcd

Syntax emacs, Found: {abcd} at 1 , Len 4

a(bc)d

abcd

Syntax awk, Found: {abcd} at 1 , Len 4

([abc])*d

abbbcd

Syntax awk, Found: {abbbcd} at 1 , Len 6

([abc])*bcd

abcd

Syntax awk, Found: {abcd} at 1 , Len 4

a|b|c|d|e

e

Syntax awk, Found: {e} at 1 , Len 1

(a|b|c|d|e)f

ef

Syntax awk, Found: {ef} at 1 , Len 2

((a*|b))*

-

Fail {-}

abcd*efg

abcdefg

Syntax emacs, Found: {abcdefg} at 1 , Len 7

ab*

xabyabbbz

Syntax emacs, Found: {ab} at 2 , Len 2

ab*

xayabbbz

Syntax emacs, Found: {a} at 2 , Len 1

(ab|cd)e

abcde

Syntax awk, Found: {cde} at 3 , Len 3

[abhgefdc]ij

hij

Syntax emacs, Found: {hij} at 1 , Len 3

^(ab|cd)e

abcde

Fail {abcde}

(abc|)ef

abcdef

Syntax awk, Found: {ef} at 5 , Len 2

(a|b)c*d

abcd

Syntax awk, Found: {bcd} at 2 , Len 3

(ab|ab*)bc

abc

Syntax awk, Found: {abc} at 1 , Len 3

a([bc]*)c*

abc

Syntax awk, Found: {abc} at 1 , Len 3

a([bc]*)(c*d)

abcd

Syntax awk, Found: {abcd} at 1 , Len 4

a([bc]+)(c*d)

abcd

Syntax awk, Found: {abcd} at 1 , Len 4

a([bc]*)(c+d)

abcd

Syntax awk, Found: {abcd} at 1 , Len 4

a[bcd]*dcdcde

adcdcde

Syntax emacs, Found: {adcdcde} at 1 , Len 7

a[bcd]+dcdcde

adcdcde

Fail {adcdcde}

(ab|a)b*c

abc

Syntax awk, Found: {abc} at 1 , Len 3

((a)(b)c)(d)

abcd

Syntax awk, Found: {abcd} at 1 , Len 4

[ -~]*

abcy

Syntax emacs, Found: {abc} at 1 , Len 3

[ -~ -~]*

abc

Syntax emacs, Found: {abc} at 1 , Len 3

[ -~ -~ -~]*

abc

Syntax emacs, Found: {abc} at 1 , Len 3

[ -~ -~ -~ -~]*

abc

Syntax emacs, Found: {abc} at 1 , Len 3

[ -~ -~ -~ -~ -~]*

abc

Syntax emacs, Found: {abc} at 1 , Len 3

[ -~ -~ -~ -~ -~ -~]*

abc

Syntax emacs, Found: {abc} at 1 , Len 3

[ -~ -~ -~ -~ -~ -~ -~]*

abc

Syntax emacs, Found: {abc} at 1 , Len 3

[a-zA-Z_][a-zA-Z0-9_]*

alpha

Syntax emacs, Found: {alpha} at 1 , Len 5

^a(bc+|b[eh])g|.h$

abh

Syntax awk, Found: {bh} at 2 , Len 2

(bc+d$|ef*g.|h?i(j|k))

effgz

Syntax awk, Found: {effgz} at 1 , Len 5

(bc+d$|ef*g.|h?i(j|k))

ij

Syntax awk, Found: {ij} at 1 , Len 2

(bc+d$|ef*g.|h?i(j|k))

effg

Fail {effg}

(bc+d$|ef*g.|h?i(j|k))

bcdd

Fail {bcdd}

(bc+d$|ef*g.|h?i(j|k))

reffgz

Syntax awk, Found: {effgz} at 2 , Len 5

((((((((((a))))))))))

-

Fail {-}

(((((((((a)))))))))

a

Syntax awk, Found: {a} at 1 , Len 1

multiple words of text

uh-uh

Fail {uh-uh}

multiple words

multiple words, yeah

Syntax emacs, Found: {multiple words} at 1 , Len 14

(.*)c(.*)

abcde

Syntax awk, Found: {abcde} at 1 , Len 5

\((.*), (.*)\)

(a, b)

Syntax awk, Found: {(a, b)} at 1 , Len 6

 


 

Copyright 1998-2002 EDMGROUP (Australia)

 

Last Updated:

July 26, 2002