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

1 投票
2 回答
870 浏览
提问于 2025-04-16 02:36

我不太确定我说得对不对,但希望下面这个例子能让事情变得清楚:

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

所以,我有点难以理解你的问题。你能给出一些 fileMaskfileName 的可能值的例子,以及你期望从后续的 re.search 调用中得到的结果吗?

另外,

我实际上需要调用 fileMask 函数。

这可能真的是个问题,因为似乎没有一个叫 fileMask函数,而是一个被这样命名的字符串。你是想说“需要调用 fileMask 的方法”吗?

撰写回答