[EMAIL PROTECTED] a écrit : > I am doing a string.replace in a simple table generation app I wrote, > and I can't figure out how to match whitespace with /s,
Hahem... Where did you get the idea that str.replace would work with regexps ? """ replace(...) S.replace (old, new[, count]) -> string Return a copy of string S with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced. """ See any mention of regexps here ?-) > so I thought > I would see if osmeone where would be kind enough to tell me what I am > getting wrong. > > > This works: > > string = string.replace('<tr>\n <th class="table">Field One</th> > \n <td>%FieldOneValue%</td>\n </tr>', '') > > > You can see I had to actually put in space characters and linefeeds > exactly as they are in the string. Indeed. That's consistent with the doc. > I tried these this: > > string = string.replace('<tr>\s*<th class="table">Field One</th>\s*<td> > %FieldOneValue%</td>\s*</tr>', '') > > > But this doesn't work. It works if you have *litteraly* the first arg in your string !-) > The doco for Python's regex suggests that \s > should match any whitespace including newlines which is what I > wanted, So why do you insist on using str.replace insted of re.sub ?-) > but just in case, I also tried this: > > string = string.replace('<tr>\n\s*<th class="table">Field One</th>\n > \s*<td>%FieldOneValue%</td>\n\s*</tr>', '') > > > Any help explaining why these are not working would be greatly > appreciated. import re pat = r'<tr>\s*<th class="table">Field One</th>\s*<td>' \ + r'%FieldOneValue%</td>\s*</tr>' string = re.sub(pat, '', string) HTH -- http://mail.python.org/mailman/listinfo/python-list