'How do I handle a series of pipe delimited values?

I have this string that I need to parse out values using a formula field. I have working examples from values 1 , 2 and 3 but I can't see the pattern within these to extend to values 4 , 5 and 6 in the string. Would appreciate any kind of guidance even if its just breaking down the code so I can modify it that is , explaining what's happening.

Here is the text I need to parse. Each value will be a stand alone field.

Article | Onsite | Sponsorship | Editorial | TFK Kid of the year | Standard

Field 1

TRIM(LEFT(AB2__ABMediaElementPath__c , FIND("|", AB2__ABMediaElementPath__c )-1))

Field 2

LEFT(RIGHT(AB2__ABMediaElementPath__c , LEN(AB2__ABMediaElementPath__c ) - FIND ("|", AB2__ABMediaElementPath__c )), FIND("|" , RIGHT(AB2__ABMediaElementPath__c , LEN(AB2__ABMediaElementPath__c ) - FIND ("|", AB2__ABMediaElementPath__c )))-1)

Field 3

LEFT(RIGHT(AB2__ABMediaElementPath__c , LEN(RIGHT(AB2__ABMediaElementPath__c , LEN(AB2__ABMediaElementPath__c ) - FIND ("|", AB2__ABMediaElementPath__c ))) - FIND ("|", RIGHT(AB2__ABMediaElementPath__c , LEN(AB2__ABMediaElementPath__c ) - FIND ("|", AB2__ABMediaElementPath__c )))), FIND("|" , RIGHT(AB2__ABMediaElementPath__c , LEN(RIGHT(AB2__ABMediaElementPath__c , LEN(AB2__ABMediaElementPath__c ) - FIND ("|", AB2__ABMediaElementPath__c ))) - FIND ("|", RIGHT(AB2__ABMediaElementPath__c , LEN(AB2__ABMediaElementPath__c ) - FIND ("|", AB2__ABMediaElementPath__c )))))-1)



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source