regex - 如果存在特定字符,如何制作所需的部分图案
问题描述
其实我有这个模式:
([0-9]{1,3}\.)?[0-9]{1,3},*?[0-9]{0,2}$
做我需要的,允许用户输入: 1.234,56 / 1234,56 / 123,56 / 1 但问题是它允许 1.000(带点分隔符的千 - 我不需要这个),有没有办法如果至少存在一个点,是否需要逗号?
请不要使用javascript解决方案。
解决方案
如果您的正则表达式在开头锚定(例如 by ),您可以对包含 a和a或不包含 a^
的字符串使用正向前瞻,然后匹配您现有的模式:.
,
.
(?=.*\..*,|[^.]+$)([0-9]{1,3}?\.?)??([0-9]{1,3})(,[0-9]{0,2})?$
推荐阅读
- python - 为什么 jupyter notebook 不支持 n_jobs=-1
- reactjs - 如何使用服务器端渲染为 ReactJS 应用程序设置多阶段构建
- entity-framework - 两个或多个读取之间的 EF 一致性
- visual-studio - Visual Studio 2022 扩展在调试时工作,但当我安装 VSIX 时它不工作
- spring-batch - Spring Batch 错误没有 CSV 行输入
- javascript - Word random api 没有给我下一个单词
- wordpress - Wordpress 主题核心文件在作为子主题编辑时不反映更改
- postgresql - Postgres 中的美元报价是否足以逃避恶意输入?
- kotlin - 如何从 args 命令加载 koin 的属性
- ssl - 在第一个 220 代码消息之后,与 Erlang(TCP 和/或 SSL)的 SMTP 连接挂起