Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于数字或特定数字的正则表达式_Php_Regex_Preg Replace - Fatal编程技术网

Php 用于数字或特定数字的正则表达式

Php 用于数字或特定数字的正则表达式,php,regex,preg-replace,Php,Regex,Preg Replace,我无法为以下条件创建正则表达式 var1 = '123' var2 = '-999' var3 = '$##99$#%' var4 = '-9999' var5 = '-123' var6 = '-99'` 条件: 接受最大长度为10位的所有整数 不接受任何字符或符号 仅接受第一个点之间的“-999”值(仅三位数字) 不接受以“-”开头且除“999”以外的任何整数 var1和var2有效,其余三个无效 这就是我迄今为止所尝试的: ^[-]?[0-9]{4}$ /^\d{1,10

我无法为以下条件创建正则表达式

 var1 = '123'
 var2 = '-999'
 var3 = '$##99$#%'
 var4 = '-9999'
 var5 = '-123'
 var6 = '-99'`
条件:

  • 接受最大长度为10位的所有整数
  • 不接受任何字符或符号
  • 仅接受第一个点之间的“-999”值(仅三位数字)
  • 不接受以“-”开头且除“999”以外的任何整数
var1
var2
有效,其余三个无效

这就是我迄今为止所尝试的:

^[-]?[0-9]{4}$


/^\d{1,10}?$/

只需从字符串开头检查1到10位数字,或者精确到-999:

^(\d{1,10}|-999)$
  • ^
    字符串的开头
  • \d{1,10}
    1到10位数字
  • |
  • 准确地说
    -999
  • 终端组
  • $
    字符串结尾

这里有一个地方可以检查:

^\d{1,10}|-999$
你自己尝试创建正则表达式了吗?我尝试了这个
^[-]?[0-9]{4}$
可能会提出这个问题。@abracadver你的意思是
^(?:\d{1,10}-999)$