gpt4 book ai didi

java - 正则表达式 - 以 OPERATION 开头,后面必须跟一个整数或 double

转载 作者:行者123 更新时间:2023-12-01 17:24:00 25 4
gpt4 key购买 nike

所以我有以下输入字符串

OPERATION: 12, 12.32, 54.3332

OPERATION 可以是 MIN、MAX、SUM 中的任意一个。正则表达式应该接受仅以这三个单词中的任何一个开头的字符串,后跟冒号,然后是整数或 double 。

在我决定向你们求助之前,我已经在谷歌上搜索和摆弄了几个小时了。

感谢您的宝贵时间!

编辑:

到目前为止我已经用这个正则表达式结束了

^[MAX:SUM:AVERAGE:MIN:(\\d+(\\.\\d+)?), ]+$

它正确匹配“MAX:”以及“MAX:”和“MA:”。它还匹配以下格式的字符串:“MAX: 12, 12.3323......”

最佳答案

您误解了[]的含义。这些指的是单个字符替代品。

因此 [MAX:SUM:AVERAGE:MIN:(\\d+(\\.\\d+)?), ]M AX 或 .... 所以像 MMMMM 这样的东西也应该匹配。

您可能想要更多类似这样的内容:

^(MAX|SUM|AVERAGE|MIN): (\\d+(\\.\\d+)?(, (?=.)|$))+$

说明:

(MAX|SUM|AVERAGE|MIN) 可以是 MAXSUMAVERAGEMIN
": " 指的是实际字符 : 和空格。
\\d+(\\.\\d+)? 是您之前的内容。
", " 指的是实际的字符,和空格。
(?=.) 是前瞻。检查以下字符 (?=) 是否与任何单个字符 (.) 匹配(因此不是字符串结尾),因此不存在 ", “ 需要在末尾。
所以 , (?=.)|$ 要么是 ", " 不在最后,要么在最后什么都没有。

替代方案:不使用前瞻

^(MAX|SUM|AVERAGE|MIN): (\\d+(\\.\\d+)?(,\\d+(\\.\\d+)?)*)$

Test for both .

Reference .

关于java - 正则表达式 - 以 OPERATION 开头,后面必须跟一个整数或 double ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com