【问题标题】:Regex for number or specific number数字或特定数字的正则表达式
【发布时间】:2019-07-01 14:37:52
【问题描述】:

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

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

条件:

  • 接受所有最大长度为 10 位的整数。
  • 不接受任何字符或符号。
  • 仅接受“-999”值分开第一个点(仅三位数字)。
  • 不接受任何以“-”开头和“999”以外的整数。

var1var2有效,其余三个无效。

这是我迄今为止尝试过的:

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

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

【问题讨论】:

  • ^\d{1,10}|-999$
  • 您是否尝试过自己创建正则表达式?
  • 我试过这个^[-]?[0-9]{4}$
  • 可能会把它放在问题中。
  • @AbraCadaver 你的意思是^(?:\d{1,10}|-999)$?

标签: php regex preg-replace


【解决方案1】:

只需从字符串的开头检查 1 到 10 位数字或正好 -999:

^(\d{1,10}|-999)$
  • ^ 字符串开头
  • (
  • \d{1,10} 1 到 10 位数字
  • |
  • 正是-999
  • )端组
  • $ 字符串结束

这里是一个检查它的地方:https://regex101.com/r/iMippW/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多