AlttdGriefPrevention/src/main/java/me/ryanhamshire/GriefPrevention/WordFinder.java

42 lines
1.1 KiB
Java
Raw Normal View History

2015-09-18 02:14:36 +00:00
package me.ryanhamshire.GriefPrevention;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class WordFinder
{
private Pattern pattern;
2015-09-18 02:14:36 +00:00
WordFinder(List<String> wordsToFind)
{
if (wordsToFind.size() == 0) return;
2015-09-18 02:14:36 +00:00
StringBuilder patternBuilder = new StringBuilder();
for (String word : wordsToFind)
2015-09-18 02:14:36 +00:00
{
if (!word.isEmpty() && !word.trim().isEmpty())
{
patternBuilder.append("|(([^\\w]|^)" + Pattern.quote(word) + "([^\\w]|$))");
}
2015-09-18 02:14:36 +00:00
}
2015-09-18 02:14:36 +00:00
String patternString = patternBuilder.toString();
if (patternString.length() > 1)
2015-09-18 02:14:36 +00:00
{
//trim extraneous leading pipe (|)
patternString = patternString.substring(1);
}
2015-09-18 02:14:36 +00:00
this.pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
}
2015-09-18 02:14:36 +00:00
boolean hasMatch(String input)
{
if (this.pattern == null) return false;
2015-09-18 02:14:36 +00:00
Matcher matcher = this.pattern.matcher(input);
return matcher.find();
}
}