给定条件的PHP正则表达式

Job*_*eph -6 php regex

可能重复:
php正则表达式,从text/html中提取电话号码

我有以下要求.有一个电话号码字段.

  • 它的长度应该在8到10之间
  • 它只能包含_和空格
  • 第一个和最后一个元素应该是数字
  • _和空格应在2位数之间

我可以使用php编写正则表达式来验证上述内容吗?

有效输入示例:231_901 347无效输入示例:_123 567,345__123

如果可能的话,请你写下preg_match表达式.

这是我试过的代码:

$subject = "_012_345 69";
$pattern = '/[\d]{1}.[\d\s_]{5,10}.[\d]{1}$/';
$matches = preg_match($pattern, $subject);
echo($matches);
Run Code Online (Sandbox Code Playgroud)

它应返回0但返回1.

Tim*_*ker 7

^(?=.{8,10}$)\d+(?:[ _]\d+)*$
Run Code Online (Sandbox Code Playgroud)

说明:

^              # Start of string
 (?=.{8,10}$)  # Assert length 8-10
 \d+           # One or more digits
 (?:           # followed by
  [ _]         #  one space or underscore
  \d+          #  one or more digits
 )*            # zero or more times.           
$              # End of string
Run Code Online (Sandbox Code Playgroud)