I take it you can't do text to columns in Excel?
If not you will have to use a combination of find() to get the location of things like "users", then mid() to parse it out. Even that is going to be tricky as the length that you will pull out will also vary. I would look to do this outside of Tableau.
Alex is right. It would be messy to do it in Tableau, but possible. To take what Alex said further you'll need an anchor on each side of the mid() parse.
[KEYWORDS]=mid([SOURCE], find([SOURCE], "keywords")+9, find([SOURCE], "users")+2)
Splitting the keywords would then be tricky. Perhaps you could use a find on the comma with the location inserted into a right() or left() formula to split it into keywords a, keywords b, keyword c, etc..
This functionality would be useful, especially for handling converted JSONs where there may be many values for a particular field, and the number of values is unknown / varies throughout the data set..
I'll third or fourth this request - splitting values into arrays and picking one of the elements is basic programming, and would be much nicer than concatenating multiple, unreliable nested FINDs.
Building On Alex's point, can this not be done outside of Tableau? As regular expressions (In Excel / Oracle) or the Patindex in SQL Server could very well come into play here especially if this can be built into a view from the outset; additionally, building from the source has the added benefit of making it easier to maintain especially as Ashley has pointed-out, doing so in Tableau could be both tiresome and troublesome.
Just a thought.