Cleaning strings with Regular Expressions

S

sheffdog

Hello,

I often find myself cleaning up strings like the following:

setAttr ".ftn" -type "string" /assets/chars/
/boya/geo/textures/lod1/ppbhat.tga";

Using regular expressions, the best I can do so far is using the re.sub
command but it still takes two lines. Can I do this in one line? Or
should I be approaching this differently? All I want to end up with is
the file name "ppbhat.tga".

Python Code:
lines[indexC]=re.sub("[\s,\S,]*/", "", lines[indexC])
lines[indexC]=re.sub(".tga[\s,\S,]*", ".tga", lines[indexC])

Thanks for your time,

/\/\ason S
 
L

Larry Bates

May not be what you are looking for, but this works:

import os
s='setAttr ".ftn" -type "string" ' \
'/assets/chars/boya/geo/textures/lod1/ppbhat.tga";'
fname=os.path.basename(s.split()[-1])


BTW-It does depend on the file/path being the last item
on the line.

Larry Bates
 
S

sheffdog

Using basename works, but leaves the extra stuff at the end.
Which would have to be removed with another line of code

I get this--> ppbhat.tga";

Thanks, for the idea though.
/\/\ason
 
F

Fredrik Lundh

sheffdog said:
Using basename works, but leaves the extra stuff at the end.
Which would have to be removed with another line of code

I get this--> ppbhat.tga";

if you're trying to parse Maya files, maybe you should start
by writing a simple Maya parser, and use that to extract the
relevant strings, *before* passing them to os.path.baseline?

</F>
 
G

Gary Wilson Jr

sheffdog said:
Using regular expressions, the best I can do so far is using the re.sub
command but it still takes two lines. Can I do this in one line? Or
should I be approaching this differently? All I want to end up with is
the file name "ppbhat.tga".

A regular expression to do what you want:'ppbhat.tga'

Is a regular expression the best solution?
That depends on what else you need to do with your data file.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,534
Members
45,008
Latest member
Rahul737

Latest Threads

Top