您可以手动调整此类模式以允许部分匹配。要记住的一件事是它们仅适用于实时验证,而不适用于最终验证。要执行最终验证,您需要使用没有可选部分(或只有那些强制性可选部分)的完整模式。
因此,该技术在于使用嵌套的可选非捕获组,例如(?:...(?:...)?)?.
^(?:(?:[01]?[0-9]|2[0-3])(?::(?:[0-5][0-9]?)?)?)?$
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示
细节:
^- 字符串的开头(?:- 可选的非捕获组的开始
(?:- 可选的非捕获组的开始
[01]?[0-9]- 可选的0or1然后任意 1 位数字|- 或者2[0-3]-然后是从到 的2数字03)- 可选非捕获组的结尾(?:- 可选的非捕获组的开始
: - 一个冒号(?:- 可选的非捕获组的开始
[0-5][0-9]?0- 从到 的数字5,然后是任何可选数字)?- 可选非捕获组的结尾)?- 可选非捕获组的结尾)?- 可选非捕获组的结尾$- 字符串末尾。| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |