On Aug 13, 7:33 am, fuglyducky <fuglydu...@gmail.com> wrote: > On Aug 12, 2:06 pm, fuglyducky <fuglydu...@gmail.com> wrote: > > > > > I have a function that I am attempting to call from another file. I am > > attempting to replace a string using re.sub with another string. The > > problem is that the second string is a variable. When I get the > > output, it shows the variable name rather than the value. Is there any > > way to pass a variable into a regex? > > > If not, is there any other way to do this? I need to be able to dump > > the variable value into the replacement string. > > > For what it's worth this is an XML file so I'm not afraid to use some > > sort of XML library but they look fairly complicated for a newbie like > > me. > > > Also, this is py3.1.2 is that makes any difference. > > > Thanks!!! > > > ##################################################### > > > import random > > import re > > import datetime > > > def pop_time(some_string, start_time): > > global that_string > > > rand_time = random.randint(0, 30) > > delta_time = datetime.timedelta(seconds=rand_time) > > > for line in some_string: > > end_time = delta_time + start_time > > new_string = re.sub("thisstring", "thisstring\\end_time", > > some_string) > > start_time = end_time > > > return new_string > > Disregard...I finally figured out how to use string.replace. That > appears to work perfectly. Still...if anyone happens to know about > passing a variable into a regex that would be great.
Instead of new_string = re.sub( "thisstring", "thisstring\\end_time", some_string) you probably meant to use something like new_string = re.sub( "thisstring", "thisstring" + "\\" + end_time, some_string) string.replace is antique and deprecated. You should be using methods of str objects, not functions in the string module. >>> s1 = "foobarzot" >>> s2 = s1.replace("bar", "-") >>> s2 'foo-zot' >>> -- http://mail.python.org/mailman/listinfo/python-list