gpt4 book ai didi

java - 两个字符串之间的子字符串选择

转载 作者:行者123 更新时间:2023-12-02 05:00:15 24 4
gpt4 key购买 nike

我正在做一些随机的 Java 工作,我的应用程序保存一个包含以下数据的文件:

Word: Word1 Description: Desc1 Type: 1 
Word: Word2 Description: Desc2 Type: 2
Word: Word3 Description: Desc3 Type: 3
Word: Word4 Description: Desc4 Type: 4

它成功保存了它,当尝试检索数据时,我无法找出应该应用什么正则表达式过滤器。例如,来自行:

    Word: Word1 Description: Desc1 Type: 1 

我想提取:

Word1
Desc1
1

每个都在不同的字符串中。

我只是没有最终理解模式语法,它已经让我头疼了。感谢您的宝贵时间:)

----------------- 编辑 ----------------

谢谢大家!我最终使用了Kon的答案。生成的代码比我想象的要简单得多。我将代码留给可能遇到类似问题的任何人。

package resources;

import resources.manager.Word;

public class CommonFunctions {
public static Word parseString(String str){

String[] stringA = str.split(" ");

Word result = new Word(stringA[1],stringA[3],Integer.parseInt(stringA[5]));
return result;
}

public static String parseWord(Word wrd){
//TODO
return null;
}
}

最佳答案

您似乎正在查找位于 : 之后的单词或数字。您可以使用此正则表达式 :\\s(\\w+) 这意味着代表

  • :
  • \\s* 零个或多个空格
  • (\\w+) 一个或多个 0-9a-zA-Z 类型的字符或_。另外,通过用括号将其括起来,正则表达式会将这部分匹配放在 group 中。 1

演示:

String[] data = { "Word: Word1 Description: Desc1 Type: 1 ",
"Word: Word2 Description: Desc2 Type: 2 ",
"Word: Word3 Description: Desc3 Type: 3 ",
"Word: Word4 Description: Desc4 Type: 4 " };
Pattern p = Pattern.compile(":\\s*(\\w+)");
for (String s:data){
Matcher m = p.matcher(s);
while (m.find())
System.out.println(m.group(1));
}

输出:

Word1
Desc1
1
Word2
Desc2
2
Word3
Desc3
3
Word4
Desc4
4

关于java - 两个字符串之间的子字符串选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20557515/

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