0

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

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

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

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

4

1 回答 1

1

是否可以使用反射来判断一个字符串是否最初是作为原始字符串提供的

不幸的是,不,因为在运行时原始字符串已经被评估,转义字符被转义并且只是一个普通的 ol' 字符串;Python 中没有“原始字符串类型”,它只是在语法级别上,您可以在其中做出区分。

>>> type(r'\n') 
str
于 2017-02-20T11:48:27.520 回答