我有一个配置文件,用户可以提供正则表达式来匹配单词,例如
wordlist = ["is", r"\b(and)\b"]
问题是:如果用户提供"is"
,这也会与"This"
匹配 - 这不是我想要的。第二个正则表达式更好,因为它使用了单词边界。不幸的是,这对每个单词都很烦人。
我的想法如下:让用户指定原始字符串(未使用正则表达式匹配)和"普通字符串" (为方便起见,首先将其翻译为r"\b({})\b".format(word)
)。有没有办法实现这个?可以使用反射来判断字符串最初是作为原始字符串提供的吗?
答案 0 :(得分:1)
可以使用反射来判断字符串最初是作为原始字符串
提供的
不幸的是,不,因为在运行时,原始字符串已经被评估过,转义字符转义并且只是一个普通的字符串。串;没有"原始字符串类型"在Python中,它只是在语法层面上,你可以做出区分。
>>> type(r'\n')
str