groovy list indexOf
29,728
Solution 1
You can use a regex in 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"
Solution 2
def list = ["blach blah blah", "SELECT something", "some more text", "some more text"]
def index = list.findIndexOf { it ==~ /SELECT \w+/ }
This will return the index of the first item that matches the regex /SELECT \w+/
. If you want to obtain the indices of all matching items replace the second line with
def index = list.findIndexValues { it ==~ /SELECT \w+/ }
Comments
-
Omnipresent almost 2 years
If I have a list with following elements
list[0] = "blach blah blah" list[1] = "SELECT something" list[2] = "some more text" list[3] = "some more text"
How can I find the index of where the string starts with SELECT.
I can do
list.indexOf("SELECT something");
But this is a dynamic list.
SELECT something
wont always beSELECT something
. it could beSELECT somethingelse
or anything but first word will always beSELECT
.Is there a way to apply regex to the indexOf search?