Php 接受自定义格式的正则表达式

Php 接受自定义格式的正则表达式,php,regex,Php,Regex,我需要验证具有以下格式的字符串: 0000000000-0000 1001 1001-1 应该验证的可能格式 XXXXXXXXXX-XXXX XXXX XXXX-X 字符串中只需要数字,并且-符号是可选的。 至少4位(最多10位),然后可选-签名,然后最多4位(也是可选的) 我尝试了\d{4,}-?\d*但如图所示,它与1232测试匹配,不应该匹配。整个字符串必须是数字和可选的-符号,而不是其他符号 以上所有内容都应该通过正则表达式,但没有其他内容。 我可以一整天都在想办法,但是因为我从来

我需要验证具有以下格式的字符串:

0000000000-0000
1001
1001-1
应该验证的可能格式

XXXXXXXXXX-XXXX
XXXX 
XXXX-X
字符串中只需要数字,并且-符号是可选的。 至少4位(最多10位),然后可选-签名,然后最多4位(也是可选的)

我尝试了
\d{4,}-?\d*
但如图所示,它与
1232测试匹配,不应该匹配。整个字符串必须是数字和可选的
-
符号,而不是其他符号

以上所有内容都应该通过正则表达式,但没有其他内容。
我可以一整天都在想办法,但是因为我从来没有深入研究过正则表达式,所以我求助于你们。

你们现在的正则表达式还可以,只需添加行的开头和结尾:

^\d{4,}-?\d*$
但是,如果要将其限制在上限(最多10个,后跟最多4个),请添加它们:

^\d{4,10}-?\d{0,4}$

您当前的正则表达式还可以,只需添加行的开头和结尾:

^\d{4,}-?\d*$
但是,如果要将其限制在上限(最多10个,后跟最多4个),请添加它们:

^\d{4,10}-?\d{0,4}$
试试这个
^\d{4,10}(?:-\d{1,4})$

格式化

 ^                             # Begin of string
 \d{4,10}                      # Required 4 to 10 digits
 (?:                           # Optional dash and 1 to 4 digits
      - \d{1,4} 
 )?
 $                             # End of string
试试这个
^\d{4,10}(?:-\d{1,4})$

格式化

 ^                             # Begin of string
 \d{4,10}                      # Required 4 to 10 digits
 (?:                           # Optional dash and 1 to 4 digits
      - \d{1,4} 
 )?
 $                             # End of string

对你有用吗?此外,条目是否可以以
-
结尾,例如
0123-
?您需要将当前正则表达式添加到问题中。除了我们之外,你还有什么办法帮助我们找到需要改变的地方?或者你只是想让别人为你工作?你“整天都在努力”吗?对你有用吗?此外,条目是否可以以
-
结尾,例如
0123-
?您需要将当前正则表达式添加到问题中。除了我们之外,你还有什么办法帮助我们找到需要改变的地方?或者你只是想让别人帮你做工作?你“整天都在努力”吗?