regex - 用于验证数字的正则表达式,带或不带冒号或小数点
问题描述
我想写一个正则表达式,它只允许数字和小数点或冒号 (:) 而不是小数点。贝娄是一些例子
有效的:
87887
8787.878
8878:98
无效的
abc
989ab
8987.89:87
我有正则表达式^[0-9.:]+$
要验证,但它接受小数点后的冒号,.
这意味着如果我写898.:89
,它显示有效。
你能帮我找出解决办法吗
解决方案
这会起作用:
^(?:[0-9]+(?:[.:][0-9]+)?|[.:][0-9]+)$
^
- 开始字符串锚(?:
- 开始非捕获组,以便开始和结束锚点是全局的,而不是成为 or 子句的一部分[0-9]+
- 允许数字(?:[.:][0-9]+)?
- 可选地允许冒号或句点必须后跟至少一位数字|
- 或者[.:][0-9]+
- 冒号或句点后跟一个数字)
- 关闭捕获组$
- 结束字符串锚
推荐阅读
- javascript - 如何让我的功能显示在图像上(并保留图像)?
- python - 如何搜索和替换汤对象中的文本?
- c# - IIS 应用程序池身份对隔离存储的权限,无需更改 iis auth 方法
- reactjs - onClick 不适用于从“react-select”导入的按钮;
- docker - docker-compose 可以在任何时候拉取/使用图像时构建图像?不更新驱动
- overriding - OOP Python - 从子类调用方法时答案 = 无
- kubernetes - Fluentd - 根据节点池或命名空间配置 CPU 和内存请求和限制
- access-point - 如何在只有一个工作 IP 地址的 LAN 网络上配置接入点?
- python - 在 python 列表中删除相似或接近的值并且只写一次
- android - 单击页面后是否可以隐藏android webview?