groovy список indexOf
если у меня есть список с элементами
list[0] = "blach blah blah"
list[1] = "SELECT something"
list[2] = "some more text"
list[3] = "some more text"
как я могу найти индекс того, где строка начинается с SELECT.
Я могу сделать list.indexOf("SELECT something");
но это динамический список. SELECT something
не будет SELECT something
. это может быть SELECT somethingelse
или что-нибудь, кроме первого слова всегда будет SELECT
.
есть ли способ применить регулярное выражение к поиску indexOf?
2 ответов
вы можете использовать регулярное выражение в поле найти:
def list = ["blach blah blah", "SELECT something", "some more text", "some more text"]
def item = list.find { it ==~ /SELECT \w+/ }
assert item == "SELECT something"
list[1] = "SELECT somethingelse"
item = list.find { it ==~ /SELECT \w+/ }
assert item == "SELECT somethingelse"
def list = ["blach blah blah", "SELECT something", "some more text", "some more text"]
def index = list.findIndexOf { it ==~ /SELECT \w+/ }
это вернет индекс первого элемента, который соответствует регулярному выражению /SELECT \w+/
. Если вы хотите получить индексы все соответствующие элементы заменяют вторую строку на
def index = list.findIndexValues { it ==~ /SELECT \w+/ }