package org.manalith.ircbot.plugin.regex; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.manalith.ircbot.annotation.Option; import org.manalith.ircbot.common.stereotype.BotCommand; import org.manalith.ircbot.plugin.SimplePlugin; import org.springframework.stereotype.Component; @Component public class RegexPlugin extends SimplePlugin { @Override public String getName() { return "정규표현식"; } @BotCommand public String regex( @Option(name = "정규표현식", help = "사용할 표현식") String regex, @Option(name = "대상 문자열", help = "표현식을 대입할 문자열") String fixture) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(fixture); if (matcher.matches()) { if (matcher.groupCount() > 0) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < matcher.groupCount(); i++) { sb.append(" " + i + ":" + matcher.group(i)); } return sb.toString(); } else { return matcher.toString(); } } else { return "매치된 문자열이 없습니다."; } } }