如何在此正则表达式中包含短划线

时间:2012-11-06 04:11:20

标签: php regex

这段代码取自codeigniter,我正在尝试将其复制到一个允许数字字符和短划线的新功能中。我还需要添加到此正则表达式以允许破折号和括号?

preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str);

2 个答案:

答案 0 :(得分:2)

你的正则表达式意味着: 用 - 或+ MAYBE开始该行 然后0-9零次或多次 然后一个。也许 然后以以下数字中的至少一个结束:0-9

您需要指定RegEx要执行的操作,然后有人可以编写正确的RegEx。

修改的 你走了:

<?php

// 555-555-5555 or (555) 555-5555 or (555)555-5555
$str = '555-555-5555';
if (preg_match( '/^((\([0-9]{3}\)) ?|[0-9]{3}-)[0-9]{3}-[0-9]{4}$/', $str) == 1){
    echo 'Yes!';
}else{
    echo 'No!';
}
?>

答案 1 :(得分:1)

preg_match( '/^\+?[-0-9]*\.?[-0-9]+$/', $str);

更新

preg_match( '/^\+?[-0-9()]*\.?[-0-9()]+$/', $str);