You can use a stringsearcher with the following regex to get the string after the last forward slash
(h^\/]+).$
You could also simply use the FilenamePartExtractor, the part after the last slash (or backslash) is found in the output attribute _filename.
@arnovananrooij
This grabs the set of characters after the last forward slash.
(?:(?!\\/)).*(?:\\/)(.*)
@ebygomm regexp ("grab everything that is not a forward slash") misses the last character.
It works if you put the dot inside the braces. But you dont need the dot, you can remove it and it works as well.
@arnovananrooij
This grabs the set of characters after the last forward slash.
(?:(?!\\/)).*(?:\\/)(.*)
@ebygomm regexp ("grab everything that is not a forward slash") misses the last character.
It works if you put the dot inside the braces. But you dont need the dot, you can remove it and it works as well.
Stingsearcher returns the full match not the group match by default so you do get the last character, but probably better to have it right :-)
Check out the LastSectionOfStringRemover transformer on the FME Hub. I think that will help do what you want here.
Check out the LastSectionOfStringRemover transformer on the FME Hub. I think that will help do what you want here.
Sorry, I just scribbled a short answer because I saw this while I was in the middle of something else. Basically I had the same issue and that's why I came up with the LastSectionOfStringRemover transformer. In fact I think it even defaults to looking for the / character, to prove that's its original purpose.
You can find the transformer on the hub here (https://hub.safe.com/publishers/safe-lab/transformers/lastsectionofstringremover) or just type the name into Quick Add in Workbench and it should download.
If you can think of a better name or description, so that you could have found this transformer to start with, please do let me know.
Stingsearcher returns the full match not the group match by default so you do get the last character, but probably better to have it right :-)
@gio, @ebygomm: You don't need to escape a forward slash (although it doesn't matter if you do)
@ebygomm
Stringsearcher does grabb fullmatch as well as captures. You need to use the advanced bit. (I do not know since which version this is, but it has always been possible using regexp in for instance tcl. I have ancient post here that does that and extracts it using a loop.)
@arnold_bijlsma
Yes you do need to escape forward slashes in regular expressions.
You may be confusing non regular expression stringsearches?
@ebygomm
Stringsearcher does grabb fullmatch as well as captures. You need to use the advanced bit. (I do not know since which version this is, but it has always been possible using regexp in for instance tcl. I have ancient post here that does that and extracts it using a loop.)
@arnold_bijlsma
Yes you do need to escape forward slashes in regular expressions.
You may be confusing non regular expression stringsearches?
Interesting! It looks like that in some RegEx flavours, forward slashes will need to be escaped! (Why?)
However, you don't need to do this in FME. Both the @FindRegEx function and the StringSearcher don't need the forward slash to be escaped. See attached workbench.
Also the forward slash is not classed as an official RegEx metacharacter:
https://www.regular-expressions.info/refquick.html