Hi Squeak Fans!
I have a short question regarding regular expressions in Squeak.
I have the following problem:
I have a fileName and I want to cut off its file extension (.jpg, .png etc.). To do this efficiently I wanted to use regular expressions with lookaround.
So let's assume the following:
| fileName | fileName := 'test.jpg'.
fileName matchesRegex: '.+(=?.(jpg|jpeg|png))'
I thought there is a possibility of returning the string without file extension through lookaround.
Do you have any hints for me?
Thanks guys!
Regards, Hans ______________________________________________________ GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT! Jetzt freischalten unter http://movieflat.web.de
I have a fileName and I want to cut off its file extension (.jpg, .png etc.). To do this efficiently I wanted to use regular expressions with lookaround.
So let's assume the following:
| fileName | fileName := 'test.jpg'.
fileName matchesRegex: '.+(=?.(jpg|jpeg|png))'
I thought there is a possibility of returning the string without file extension through lookaround.
Do you have any hints for me?
#sansPeriodSuffix can help
or if you want only some extension: fileName regex: '.+(=?.(jpg|jpeg|png))' matchesDo: [:fname | newFileName:= fname sansPeriodSuffix]
you probably can do it only with regex but I don't know right now :)
hth,
Thanks guys!
Regards, Hans ______________________________________________________ GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT! Jetzt freischalten unter http://movieflat.web.de
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
Hans Gruber wrote:
Hi Squeak Fans!
I have a short question regarding regular expressions in Squeak.
I have the following problem:
I have a fileName and I want to cut off its file extension (.jpg, .png etc.). To do this efficiently I wanted to use regular expressions with lookaround.
Using regular expressions may be convenient, it sure as hell isn't efficient. Much easier to use, e.g.,
fileName copyUpToLast: $.
As for efficiency:
[1 to: 10000 do:[:i| 'filename.jpg' matchesRegex: '.+(=?.(jpg|jpeg|png))' ]] timeToRun. => 2222 msecs
[1 to: 10000 do:[:i| 'filename.jpg' copyUpToLast: $. ]] timeToRun. => 30 msecs
So using regexp's is about 80x slower.
Cheers, - Andreas
So let's assume the following:
| fileName | fileName := 'test.jpg'.
fileName matchesRegex: '.+(=?.(jpg|jpeg|png))'
I thought there is a possibility of returning the string without file extension through lookaround.
Do you have any hints for me?
Thanks guys!
Regards, Hans ______________________________________________________ GRATIS für alle WEB.DE-Nutzer: Die maxdome Movie-FLAT! Jetzt freischalten unter http://movieflat.web.de
beginners@lists.squeakfoundation.org