繁体   English   中英

将Ruby正则表达式转换为php / perl正则表达式

[英]translate Ruby regex to php/perl regex

我做了这个正则表达式,它在Ruby中可以正常工作:

/(1?[[\(\s\.-]]\d{3}\)?[\s\.-]\d{3}[\s\.-]\d{4}(\z[^\d])?)/

它用于从文本文档中提取电话号码,但是现在我在PHP中使用了preg_match_all相同的表达式。 现在,相同的表达式给我一个空数组。
我不明白为什么会这样

为了使此表达式在PHP中起作用,我需要更改什么?

您的Regexp中有一个奇怪的错误。 我认为在Rubular上工作是部分运气:

(1?[[\(\s\.-]]\d{3}\)?[\s\.-]\d{3}[\s\.-]\d{4}(\z[^\d])?)
   ^         ^

为什么这些括号在那里两次?

看到这里的工作版本,我刚刚删除了那些。 现在可以使用PHP正常工作:

http://www.regex101.com/r/gR6kS3/1

(1?[\(\s\.-]\d{3}\)?[\s\.-]\d{3}[\s\.-]\d{4}(\z[^\d])?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM