如何反映是否使用了原始字符串或普通字符串?

时间:2017-02-20 11:14:24

标签: python string python-3.x reflection rawstring

我有一个配置文件,用户可以提供正则表达式来匹配单词,例如

wordlist =  ["is", r"\b(and)\b"]

问题是:如果用户提供"is",这也会与"This"匹配 - 这不是我想要的。第二个正则表达式更好,因为它使用了单词边界。不幸的是,这对每个单词都很烦人。

我的想法如下:让用户指定原始字符串(未使用正则表达式匹配)和"普通字符串" (为方便起见,首先将其翻译为r"\b({})\b".format(word))。有没有办法实现这个?可以使用反射来判断字符串最初是作为原始字符串提供的吗?

1 个答案:

答案 0 :(得分:1)

  

可以使用反射来判断字符串最初是作为原始字符串

提供的

不幸的是,不,因为在运行时,原始字符串已经被评估过,转义字符转义并且只是一个普通的字符串。串;没有"原始字符串类型"在Python中,它只是在语法层面上,你可以做出区分。

>>> type(r'\n') 
str