我不确定我是否正确地表达了它,但希望这个例子能够清除它:
re.search(fileMask.replace('*','.*?'),fileName):
对于re.search()调用中的第一个参数,我如何确保将fileMask.replace()调用返回的值作为原始字符串传递?
产生效果:
re.search(r'fileMask.replace('*','.*?')',fileName):
..虽然这不起作用,因为我实际上需要调用fileMask函数。
答案 0 :(得分:2)
没有“原始字符串”这样的类型 - 有如此命名的文字(字符串类型),但文字所代表的对象是字符串对象 - 仅此而已,没什么。例如,文字r'a\b''
(“原始字符串文字”)和'a\\b'
(普通字符串文字)完全代表相同字符串值:长度为3的字符串,带字符a,反向间隙和b,按此顺序。如果您打印这些对象,则显示为a\b
;如果你打印他们的repr
,则在两种情况下都是a\\b
。
所以,很难理解你的问题。您能举例说明fileMask
和fileName
的一些可能值,以及您期望从re.search
次调用得到的结果吗?
另外,
我实际上需要fileMask函数 被召唤。
这可能确实是一个问题,因为似乎没有名为fileMask
的功能,而是(似乎)一个字符串这样命名。你的意思是“需要调用fileMask的方法”吗?
答案 1 :(得分:1)
re.search(fileMask.replace('\*','\.\*?').encode('string_escape'), fileName):