//modified to work with Kotlin 1.0.x
private val keywords = arrayOf("foo", "bar", "spam")
private val pattern = keywords.joinToString(prefix = "(?i)", separator = "|")
private val rx = pattern.toRegex()
fun findKeyword(content: String): MutableList<String> {
var result = mutableListOf<String>()
rx.findAll(content).forEach { result.add(it.value) }
return result
}
fun main(args: Array<String>) {
println(findKeyword("Some spam and a lot of bar"));
println(arrayOf("foo", "bar", "spam").joinToString(prefix = "(?i)", separator = "|").toRegex())
}
Ly9tb2RpZmllZCB0byB3b3JrIHdpdGggS290bGluIDEuMC54CnByaXZhdGUgdmFsIGtleXdvcmRzID0gYXJyYXlPZigiZm9vIiwgImJhciIsICJzcGFtIikKcHJpdmF0ZSB2YWwgcGF0dGVybiA9IGtleXdvcmRzLmpvaW5Ub1N0cmluZyhwcmVmaXggPSAiKD9pKSIsIHNlcGFyYXRvciA9ICJ8IikKcHJpdmF0ZSB2YWwgcnggPSBwYXR0ZXJuLnRvUmVnZXgoKQoKZnVuIGZpbmRLZXl3b3JkKGNvbnRlbnQ6IFN0cmluZyk6IE11dGFibGVMaXN0PFN0cmluZz4geyAKICAgIHZhciByZXN1bHQgPSBtdXRhYmxlTGlzdE9mPFN0cmluZz4oKQogICAgcnguZmluZEFsbChjb250ZW50KS5mb3JFYWNoIHsgcmVzdWx0LmFkZChpdC52YWx1ZSkgfQogICAgcmV0dXJuIHJlc3VsdAp9CgpmdW4gbWFpbihhcmdzOiBBcnJheTxTdHJpbmc+KSB7IAogICAgcHJpbnRsbihmaW5kS2V5d29yZCgiU29tZSBzcGFtIGFuZCBhIGxvdCBvZiBiYXIiKSk7CiAgICBwcmludGxuKGFycmF5T2YoImZvbyIsICJiYXIiLCAic3BhbSIpLmpvaW5Ub1N0cmluZyhwcmVmaXggPSAiKD9pKSIsIHNlcGFyYXRvciA9ICJ8IikudG9SZWdleCgpKQp9