将原始字符串应用于函数返回值

时间:2010-08-10 20:01:45

标签: python

我不确定我是否正确地表达了它,但希望这个例子能够清除它:

re.search(fileMask.replace('*','.*?'),fileName):

对于re.search()调用中的第一个参数,我如何确保将fileMask.replace()调用返回的值作为原始字符串传递?

产生效果:

re.search(r'fileMask.replace('*','.*?')',fileName):

..虽然这不起作用,因为我实际上需要调用fileMask函数。

2 个答案:

答案 0 :(得分:2)

没有“原始字符串”这样的类型 - 有如此命名的文字(字符串类型),但文字所代表的对象是字符串对象 - 仅此而已,没什么。例如,文字r'a\b''(“原始字符串文字”)和'a\\b'(普通字符串文字)完全代表相同字符串值:长度为3的字符串,带字符a,反向间隙和b,按此顺序。如果您打印这些对象,则显示为a\b;如果你打印他们的repr,则在两种情况下都是a\\b

所以,很难理解你的问题。您能举例说明fileMaskfileName的一些可能值,以及您期望从re.search次调用得到的结果吗?

另外,

  

我实际上需要fileMask函数   被召唤。

这可能确实是一个问题,因为似乎没有名为fileMask功能,而是(似乎)一个字符串这样命名。你的意思是“需要调用fileMask的方法”吗?

答案 1 :(得分:1)

re.search(fileMask.replace('\*','\.\*?').encode('string_escape'), fileName):