gpt4 book ai didi

java - 如何以这种方式匹配字符串?

转载 作者:行者123 更新时间:2023-12-02 10:36:40 26 4
gpt4 key购买 nike

我需要检查字符串是否与此特定模式匹配。

模式是:

(Numbers)(all characters allowed)(numbers)

并且数字可能有逗号(“.”或“,”)!

例如,输入可以是 500+400400,021+213.443

我尝试了 Pattern.matches("[0-9],?.?+[0-9],?.?+", theequation2),但没有成功!

我知道我必须使用 Pattern.match(regex, String) 方法,但我无法找到正确的正则表达式。

最佳答案

处理数字可能很困难。这种方法将处理您的示例,但请仔细检查。我也没有在中间分组中执行“所有字符”,因为“所有”将包含数字,因此我认为找到下一个非数字是合适的。

这个 Java 正则表达式处理要求:

"((-?)[\\d,.]+)([^\\d-]+)((-?)[\\d,.]+)"

但是,上面有一个潜在的问题。考虑以下:300 - -200。上述情况与该情况不匹配。

现在,根据示例,我认为重点是应该有一个有效的运算符。数学运算的数量可能是有限的,因此我会将中间的运算符列入白名单。因此,类似于:

"((-?)[\\d,.]+)([\\s]*[*/+-]+[\\s]*)((-?)[\\d,.]+)"

我认为,更合适。 [*/+-] 可以扩展为幂运算符 ^ 或其他。现在,如果要开始在方程中添加单词(例如 mod),则需要修改表达式。

您可以看到this regular expression here

关于java - 如何以这种方式匹配字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242034/

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