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