S.I/Lisp/

The =TEXTBETWEEN() function




ABSTRACT

The =TEXTBETWEEN(source_text, first_boundary, second_boundary) function returns the text between two given boundaries.




EXAMPLES

  A
1 (123) 456 - 7890
2 username@gmail.com
=TEXTBETWEEN(A1, "(", ")")
-> 123

=TEXTBETWEEN(A2, "@", ".")
-> gmail
        


SOURCE CODE

DEFINE(
    TEXTBETWEEN,
    LAMBDA(
        source_text,
        first_boundary,
        second_boundary,
        LET(
            text_after_first_boundary,
                RIGHT(
                    source_text,
                    DIFFERENCE(
                        LEN(source_text),
                        DECREMENT(
                            SUM(
                                FIND(
                                    first_boundary,
                                    source_text),
                                LEN(first_boundary))))),
            LEFT(
                text_after_first_boundary,
                DECREMENT(
                    FIND(
                        second_boundary,
                        text_after_first_boundary))))))
        


Help us optimize this function!