【发布时间】:2020-08-24 17:07:14
【问题描述】:
我一直在使用我为我的不和谐机器人写的这段代码:
Pattern pattern = Pattern.compile("\\/setNickname ([^\\s]+)");
Matcher matcher = pattern.matcher(messageReceivedEvent.getMessage().getContentRaw());
boolean foundMatch = matcher.find();
if (foundMatch && matcher.groupCount() > 0) {
String discordUserId = messageReceivedEvent.getAuthor().getId();
String extractedName = matcher.group(1);
根据用户输入频道的文本更改昵称,格式如下:
[HH:MM:SS] /setNickname Bill
此代码可以正常工作。但是,我现在想更改它,但我似乎无法让正则表达式模式适用于新格式的消息。它始终是玩家必须输入带有时间戳的消息,因此条目将是:
[HH:MM:SS] Bill 4cYaUTKzT2odRf2
在某个时候,我计划在此基础上构建并使其成为变量,因此在第二个空格之前和之后消除似乎是最合乎逻辑的选择,但我正在努力解决这个问题。
输入将是:[HH:MM:SS] Bill 4cYaUTKzT2odRf2
输出应该只是:Bill
任何帮助将不胜感激!
【问题讨论】:
-
你想要的输出是什么?
-
能否提供输入输出示例
-
对不起,我把输出分开了。输出应该只是比尔。我认为这会很接近吗? .*(]\s)(.*)(\s).* 带有 matcher.group(2) 但我不确定。
-
怎么样:
^\[[0-9][0-9]:[0-9][0-9]:[0-9][0-9]\] (\S+)见regex101
标签: java regex expression