开发者

Why don't reg expressions from regexlib.com work in PHP?

开发者 https://www.devze.com 2023-01-06 14:32 出处:网络
I found a regex on http://regexlib.com/REDetails.aspx?regexp_id=73 It\'s for matching a telephone number with internati开发者_开发技巧onal code like so:

I found a regex on http://regexlib.com/REDetails.aspx?regexp_id=73

It's for matching a telephone number with internati开发者_开发技巧onal code like so:

^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$

When using with PHP's preg_match, the expression fails? Why is that?


You need to surround it with / delimiters:

preg_match('/^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/', $phoneNumber)

And make sure you don't leave out the backslashes (\).


Because preg_match expects the regex to be delimited, usually with slashes (but, as correctly noted below, other characters are possible as long as they are matched):

preg_match('/^(\(?\+?[0-9]*\)?)?[0-9_ ()-]*$/', $subject)

Apart from that, the original regex was copied wrong - several characters were unescaped. The original on regexlib has a few warts, too (some characters were escaped needlessly).

0

精彩评论

暂无评论...
验证码 换一张
取 消