我有一个不区分大小写的正则表达式:
f?a?(x|csim)?(mob)?(ile\s*?)?(tel)?(e)?(phone|p|t|m)?\s*?:?\s*?(\s*?\(*?\d\)*?){8,10}
这是我的测试用例:
我希望这些匹配:
- 电话:9555 5454
- 电话 08 9555 5454
- 手机 0411111 111
- 暴民 0411 111 111
- 手机:(0411) 111 111
- 电话:(08) 9555 5454
- M0411111111
- 电话:(08) 9555 5454
- 电话:(08)95 55 54 54
- 电话:0895555454
- 传真:(08) 9555 5353
- 传真95555353
- 女 95 55 53 53
但我不希望这些匹配
- 0411 111 111
- (08) 9555 5454
- 0411111111
基本上,我想匹配我识别为电话号码的东西,但前提是它们前面有一个标识符。
我的正则表达式将成功匹配前缀标识符,但由于整个事情是非贪婪的,“不匹配”测试用例失败,因为我的正则表达式指定“匹配前缀,如果它存在,但不需要它”。
有任何想法吗?
- 请注意:我使用的是 Perl/PHP 版本的正则表达式。