目前,我正在使用Java上的pIRC對Twitch-Bot進行編程。用於Twitch-Bot的Java中的字符串正則表達式
我想理清例如像!<command> [<tagged-user>]
命令現在我使用這些代碼:
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.
}
}
我得到例如!info testuser
:
testuser [here is the command response]
我想提高代碼只通過正則表達式處理。
基本上我想要一個正則表達式讀出命令名,如果有人給它加上標籤,它也應該讀取帶標籤的用戶名。
有點像Pattern pattern = Pattern.compile("!COMMANDNAME [TAGGEDUSER]");
謝謝你幫我,我正則表達式struggelt很多最近,但我想了解它。在線regexing不會幫助我很多。
你的意思是類似的東西:'[A-ZA-Z] +(\ S \ [A-ZA-Z0! -9] + \]){0,1}'?這種模式匹配'!Qwertz'和'!Qwertz [Something123]' – Blobonat
@Blobonat爲什麼使用'{0,1}'而不是'?'? – RealSkeptic
@RealSkeptic因爲我覺得它更具可讀性,但沒有特別的理由。 – Blobonat