Kotlin регулярное выражение для соответствия строке, содержащей специфицированный c шаблон TODO - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь сопоставить строку в Kotlin (JVM), которая в какой-то момент содержит TODO. Моя цель - найти, содержит ли строка TODO, но не содержит ли связанный идентификатор JIRA после.

Примеры

Не должно совпадать

var x = 3 // TODO JIRA-4

Должно совпадать

var x = 3 // TODO

Я пробовал:

"[\\w]*//([ ]*TODO|[ ]*FIXME)".toRegex().containsMatchIn(myLine).and(!myLine.contains("JIRA"))

Если возможно, я хотел бы поискать оба TODO и FIXME . Я не очень хочу найти их в многострочном комментарии.

1 Ответ

0 голосов
/ 16 июня 2020
listOf("// TODO JIRA-4", "// FIXME JIRA-4", "// TODO hello", "// FIXME hello")
    .filterNot { it.matches(Regex("""\/\/\s*(TODO|FIXME)\s*(JIRA).*""")) }
    .forEach(::println) // prints the last 2 strings
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...