Momentan programmiere ich einen Twitch-Bot mit pIRC auf Java.String regex in Java für Twitch-Bot
Ich möchte Befehle wie zB !<command> [<tagged-user>]
Vorerst ich diesen Code verwenden, um auszusortieren:
private boolean checkForCommand(String message) {
Pattern pattern = Pattern.compile("^(!)\\w+");
Matcher m = pattern.matcher(message);
return m.find();
}
public void onMessage(String channel, String sender, String login,String hostname, String message){
String user = sender;
if(checkForCommand(message)){
String[] arguments;
if(message.split("\\s+").length > 1){
arguments = message.split("\\s+");
}else {
arguments = new String[1];
arguments[0] = message;
}
String command = arguments[0].substring(1, arguments[0].length());
if(arguments.length > 1){
user = arguments[1];
}
respondForCommand(command,user); // User gets respond for his command.
}
}
ich zum Beispiel bekommen !info testuser
:
testuser [here is the command response]
Ich möchte verbessern der Code, indem nur der Lochprozess neu definiert wird.
Grundsätzlich möchte ich eine Regex, die den Befehlsnamen liest und wenn es jemand markiert ist, sollte es auch den getaggten Benutzernamen lesen.
Kinda wie Pattern pattern = Pattern.compile("!COMMANDNAME [TAGGEDUSER]");
Danke mir geholfen, ich struggelt alot mit regex in letzter Zeit, aber ich will es verstehen. Online Regexing wird mir nicht viel helfen.
Haben Sie so etwas wie das bedeutet: '[A-Za-z] + (\ s \ [[A-Za-z 0! -9] + \]) {0,1} '? Dieses Muster entspricht '! Qwertz' und'! Qwertz [Something123] ' – Blobonat
@Blobonat Warum' {0,1} 'anstelle von'? '? – RealSkeptic
@RealSkeptic Weil ich finde es besser lesbar, aber es gibt keinen besonderen Grund. – Blobonat