gpt4 book ai didi

Java 正则表达式不工作 - 字符串分割

转载 作者:行者123 更新时间:2023-12-02 04:04:07 25 4
gpt4 key购买 nike

我有一个字符串变量,想从中提取一个值。

String LB0001 = "LB0001"; 
String[] splitString = LB0001.split("LB(.*)");

我期望的是 splitString 将包含两个值,["LB0001",["0001"]]。然而结果为空。为什么?我检查了正则表达式,似乎是正确的。

我想提取“0001”。我可以使用其他方式来做到这一点,但想知道我在这里做错了什么。

最佳答案

split 方法将在提供的正则表达式匹配的位置进行拆分。在您的情况下,表达式 LB(.*) 与提供的字符串完全匹配,因此您什么也得不到。

如果您想获取数字部分,您可以拆分任何非数字的内容,如下所示:.split("\\D")。这应该会得到 1 个包含 0001 的元素。

编辑:如果您想要LB之后的任何内容,您将需要使用PatternMatcher类。所以基本上是这样的:

String str = "LB0001";
Pattern p = Pattern.compile("LB(.*?)");
Matcher m = p.matcher(str);
while(m.find())
System.out.println(m.groups(1));

上面将使用正则表达式来查找 LB 后面的任何文本。我已将其从 .* 更改为 .*?,以防您遇到类似这样的情况:LB001LB333。额外的 ? 使表达式变得非贪婪。

关于Java 正则表达式不工作 - 字符串分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34545528/

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