开发者

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

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜