заводной список indexOf - PullRequest
       16

заводной список indexOf

6 голосов
/ 09 октября 2009

Если у меня есть список со следующими элементами

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 ]

18 голосов
/ 09 октября 2009
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+/ }
6 голосов
/ 09 октября 2009

Вы можете использовать регулярное выражение в find:

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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...