Regular Expression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I somehow just couldn't get my regular expression syntax correct. Will you please help me?

some examples of my valid string is:
sinx0401-001-45
hkgx0403-020-12
jktx0402-000-01
bkkx0407-013-44

the definition is:
1st 4 characters   - can only be "sinx" or "hkgx" or "bkkx" or "jktx"
next 4 characters - numbers 0 to 9
next 1 character   - a dash "-"
next 3 characters - numbers 0 to 9
next 1 character   - a dash "-"
last 2 characters  - numbers 0 to 9

my problem is how can i make sure the first 4 characters are either "sinx" or "hkgx" or "bkkx" or "jktx"?
I've tried:

eregi("[(sinx)|(hkgx)|(bkkx)|(jktx)][0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string)

but this condition returns a TRUE if the 4th character in the string is "x"!
that means, if my $string = "xxxx0408-001-54", this condition returns me with TRUE!

i also tried the following but they didn't give me the correct results:

eregi("^[(sinx)|(hkgx)|(bkkx)|(jktx)]{4}[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string)

eregi("[(sinx)|(hkgx)|(bkkx)|(jktx)]{4}[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string)

eregi("(sinx)|(hkgx)|(bkkx)|(jktx)[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string)

eregi("^(sinx)|(hkgx)|(bkkx)|(jktx)[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string)

does anyone have any suggestions?

Thank you!

Hwee

[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux