Java从字符串中提取部分的最佳方法

我有以下字符串;

[Username [rank] -> me] message

等级,用户名和消息的字符每次都不同。将其分为三个独立变量(用户名,等级和消息)的最佳方法是什么?

我已经尝试过:

String[] parts = text.split("] ");

但这会抛出错误。提前致谢!

回答:

使用Java对正则表达式(java.util.regex)的支持,并让正则表达式匹配这三个部分。

例如这个: ^\[([\w]+) \[([\w]+)\] -> \w+\] (.*)$

Java代码段,略微改编自Ian F. Darwin的“ Java Cookbook”(O’Reilly):

import java.util.regex.*;

class Test

{

public static void main(String[] args)

{

String pat = "^\\[([\\w]+) \\[([\\w]+)\\] -> \\w+\\] (.*)$";

Pattern rx = Pattern.compile(pat);

String text = "[Username [rank] -> me] message";

Matcher m = rx.matcher(text);

if(m.find())

{

System.out.println("Match found:");

for(int i=0; i<=m.groupCount(); i++)

{

System.out.println(" Group " + i + ": " + m.group(i));

}

}

}

}

输出:

Match found:

Group 0: [Username [rank] -> me] message

Group 1: Username

Group 2: rank

Group 3: message

以上是 Java从字符串中提取部分的最佳方法 的全部内容, 来源链接: utcz.com/qa/420251.html

回到顶部