How to search a SpannableString without knowing the exact substring

I want to search a spannable string to find the index of a certain substring which I don’t know the length or exact characters of eg [size=??] where the question marks could be any characters or substring of any length. If possible I’d also like to know the length of such a string found.

(edit) Example: If a string such as "string [size=212] more string" was given I want it to return the index, so in this case 7 and the length of [size=212], in this case 10

Answer

You can accomplish this job by using Pattern and Matcher.

public class Main
{
    public static void main(String[] args)
    {
        String str = "string [size=212] more string [size=212] more string here";
        Pattern pat = Pattern.compile("\[size=[0-9]+\]");
        Matcher mat = pat.matcher(str);

        int index, lastIndex = 0, length, value;

        while(mat.find()) {
            final String found = mat.group(0);
            value = Integer.parseInt(found.replaceAll("^\[size=|\]$", ""));
            length = found.length();
            index = str.indexOf(found, lastIndex);
            lastIndex += length;

            System.out.printf("index: %d, length: %d, string: %s, value: %d%n", index, length, found, value);
        }
    }
}

Output:

index: 7, length: 10, string: [size=212], value: 212
index: 30, length: 10, string: [size=212], value: 212