gpt4 book ai didi

java - java中字符串的正则表达式

转载 作者:行者123 更新时间:2023-12-02 08:19:44 26 4
gpt4 key购买 nike

我是 Java 正则表达式的新手程序员。我不想使用带分隔符的 java split 并尝试获取各个标记。我不觉得这是一种巧妙的方式。我有以下字符串

"Some String lang:c,cpp,java file:build.java"

我想把它分成三个部分

1 part containing "Some String" 
2 part containing "c,cpp,java"
3 String containing "build.java"

lang:file: 可以放在任何位置,并且它们是可选的。

最佳答案

The lang: and file: can be placed any where and they are optional.

尝试以下表达式来获取语言列表和文件:

String input = "Some String lang:c,cpp,java file:build.java";
String langExpression = "lang:([\\w,]*)";
String fileExpression = "file:([\w\.]*)";

Patter langPattern = Pattern.compile(langExpression);
Matcher langMatcher = langPattern.matcher(input);
if (langMatcher.matches()) {
String languageList = langMatcher.group(1);
}

Patter filePattern = Pattern.compile(fileExpression );
Matcher fileMatcher = filePattern.matcher(input);
if (fileMatcher .matches()) {
String filename= fileMatcher.group(1);
}

只要语言列表或文件名不包含空格,这应该适用于 lang:xxx file:xxx 以及 file:xxx lang:xxx 。如果 lang: 和/或 file: 丢失,这也可以工作。

您是否也期望这样的字符串:file:build.java Some String lang:c,cpp,java

关于java - java中字符串的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703028/

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