Php Regex-如何验证一组由“"-&引用;?
我正试图弄清楚如何验证格式如下的数字:XXXX或XXXX-XXXX 我试过了Php Regex-如何验证一组由“"-&引用;?,php,regex,Php,Regex,我正试图弄清楚如何验证格式如下的数字:XXXX或XXXX-XXXX 我试过了 /^\d{4}(-{1}\d{4})?/i 但它只验证XXXX-XXXX格式,而不验证XXXX 提前感谢试试这个: /\d{4}(-\d{4})?/ 演示:试试这个: /\d{4}(-\d{4})?/ 演示:我试过这个: ^\d{4}(-\d{4})? 在这里: 您可以在第一个区域中写入正则表达式,并在第二个区域中测试数字 适用于1234和1234-1234(任何数字)。我试过这个: ^\d{4}(-\d{4}
/^\d{4}(-{1}\d{4})?/i
但它只验证XXXX-XXXX格式,而不验证XXXX
提前感谢试试这个:
/\d{4}(-\d{4})?/
演示:试试这个:
/\d{4}(-\d{4})?/
演示:我试过这个:
^\d{4}(-\d{4})?
在这里:
您可以在第一个区域中写入正则表达式,并在第二个区域中测试数字
适用于1234和1234-1234(任何数字)。我试过这个:
^\d{4}(-\d{4})?
在这里:
您可以在第一个区域中写入正则表达式,并在第二个区域中测试数字
适用于1234和1234-1234(任何数字)。执行验证时不需要捕获组:
^\d{4}(?:-\d{4})?$
^\/\ /\ /^\/\ /^^^
| | | | | | | ||`-- end of string
| | | | | | | |`-- previous is optional (non-capture group of `-` and 4 numbers 0-9)
| | | | | | | `-- end of non-capture group
| | | | | | `-- exactly 4 of previous (any number 0-9)
| | | | | `-- any number 0-9
| | | | `-- just `-`
| | | `-- non-capture group
| | `-- exactly 4 of previous (any number 0-9)
| `-- any number 0-9
`-- start of string
执行验证时不需要捕获组:
^\d{4}(?:-\d{4})?$
^\/\ /\ /^\/\ /^^^
| | | | | | | ||`-- end of string
| | | | | | | |`-- previous is optional (non-capture group of `-` and 4 numbers 0-9)
| | | | | | | `-- end of non-capture group
| | | | | | `-- exactly 4 of previous (any number 0-9)
| | | | | `-- any number 0-9
| | | | `-- just `-`
| | | `-- non-capture group
| | `-- exactly 4 of previous (any number 0-9)
| `-- any number 0-9
`-- start of string
您的正则表达式看起来是正确的(尽管
{1}
什么也不做,您可能也希望在字符串末尾使用$
将表达式锚定到字符串的末尾)。你能多加一点你的代码吗?^而i
什么都不做。如果只是数字,我们不需要关心他们的情况。顺便说一下,你的正则表达式。在末尾添加一个$
,您的正则表达式看起来是正确的(尽管{1}
什么都不做,您可能也希望在字符串末尾使用$
将表达式锚定到字符串的末尾)。你能多加一点你的代码吗?^而i
什么都不做。如果只是数字,我们不需要关心他们的情况。顺便说一下,你的正则表达式。在末尾添加一个$
,你会发现:不,不是<代码>-仅在字符类(例如[a-z]
)中是特殊的。不,不是-
仅在字符类中是特殊的(例如[a-z]
)。当然也没有必要不使用捕获组吗?我无法想象不使用一个正则表达式会有更好的性能,因为它必须经过额外的逻辑(尽管我可能错了)。不使用捕获组更正确,但也会使不理解正则表达式的人更复杂it@h2ooooooo:捕获时有额外的逻辑,而不是相反。看见不确定PHP是否也一样,但我认为是这样。当然也没有必要不使用捕获组吗?我无法想象不使用一个正则表达式会有更好的性能,因为它必须经过额外的逻辑(尽管我可能错了)。不使用捕获组更正确,但也会使不理解正则表达式的人更复杂it@h2ooooooo:捕获时有额外的逻辑,而不是相反。看见不确定PHP是否也是如此,但我认为是这样。