将原始字符串应用于函数返回值
我不太确定我说得对不对,但希望下面这个例子能让事情变得清楚:
re.search(fileMask.replace('*','.*?'),fileName):
在调用 re.search() 的时候,第一个参数,我怎么才能确保传入的是 fileMask.replace() 返回的原始字符串呢?
大概是这样的:
re.search(r'fileMask.replace('*','.*?')',fileName):
..不过这样做不行,因为我实际上需要调用 fileMask 这个函数。
2 个回答
1
re.search(fileMask.replace('\*','\.\*?').encode('string_escape'), fileName):
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
2
其实没有什么叫做“原始字符串”的类型——我们说的只是一些被称为字面量的字符串类型。字面量代表的对象就是字符串对象,没什么特别的。例如,字面量 r'a\b'
(原始字符串字面量)和 'a\\b'
(普通字符串字面量)实际上表示的是完全相同的字符串值:长度为三,字符依次是 a、反斜杠和 b。如果你打印这两个对象,它们都会显示为 a\b
;如果你打印它们的 repr
,在这两种情况下都是 a\\b
。
所以,我有点难以理解你的问题。你能给出一些 fileMask
和 fileName
的可能值的例子,以及你期望从后续的 re.search
调用中得到的结果吗?
另外,
我实际上需要调用 fileMask 函数。
这可能真的是个问题,因为似乎没有一个叫 fileMask 的函数
,而是一个被这样命名的字符串。你是想说“需要调用 fileMask 的方法”吗?