gpt4 book ai didi

java - 为什么这个 Java 正则表达式与我的字符串不匹配?

转载 作者:行者123 更新时间:2023-12-01 08:13:43 25 4
gpt4 key购买 nike

我有以下 Java 代码:

String data = "MaxL-450";

if(!data.matches("MaxL\\-*"))
throw new IllegalArgumentException("Did not match.");

当我执行它时,抛出异常,因为显然正则表达式与我的 data 字符串不匹配。我的正则表达式有问题还是这里发生了其他问题?提前致谢。

最佳答案

* 表示前一个字符出现零次或多次。您需要类似 "MaxL-[0-9]*" 的内容,假设您想匹配破折号后的数字。

或者您可以使用“MaxL-\\d*”。请注意,在 Java 中您需要两个斜杠,因为您需要转义斜杠本身。就我个人而言,我喜欢在 Java 中使用显式字符类(即 [0-9]),因为它更容易阅读,因为你的正则表达式不可避免地会变得更长、更复杂。

编辑:此外,正如 Dave Newton 指出的那样,破折号前面的转义斜杠不是必需的,因为破折号不在字符类内。

关于java - 为什么这个 Java 正则表达式与我的字符串不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15207595/

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