栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Python中获取字符串的原始表示形式?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Python中获取字符串的原始表示形式?

rawstring表示的问题在于,您无法以可移植的方式(即,不使用控制字符)来表示所有内容。例如,如果您的字符串中有换行符,则必须将字符串从字面上断开到下一行,因为它不能表示为rawstring。

也就是说,获取原始字符串表示形式的实际方法是您已经提供的:

"r'{}'".format(regex.pattern)

rawstrings的定义是没有应用任何规则,只是它们以它们开头的引号结尾,并且您可以使用反斜杠转义该引号。因此,例如,您不能像

""
原始字符串表示形式那样存储等效的字符串(
r""
产生SyntaxError和
r"\"
yields
"\\"
)。

如果您确实要执行此操作,则应使用类似以下的包装器:

def rawstr(s):    """    Return the raw string representation (using r'') literals of the string    *s* if it is available. If any invalid characters are encountered (or a    string which cannot be represented as a rawstr), the default repr() result    is returned.    """    if any(0 <= ord(ch) < 32 for ch in s):        return repr(s)    if (len(s) - len(s.rstrip("\"))) % 2 == 1:        return repr(s)    pattern = "r'{0}'"    if '"' in s:        if "'" in s: return repr(s)    elif "'" in s:        pattern = 'r"{0}"'    return pattern.format(s)

测试:

>>> test1 = "\">>> test2 = "foobar n">>> test3 = r"a valid rawstring">>> test4 = "foo \\\">>> test5 = r"foo \">>> test6 = r"'">>> test7 = r'"'>>> print(rawstr(test1))'\'>>> print(rawstr(test2))'foobar n'>>> print(rawstr(test3))r'a valid rawstring'>>> print(rawstr(test4))'foo \\\'>>> print(rawstr(test5))r'foo \'>>> print(rawstr(test6))r"'">>> print(rawstr(test7))r'"'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号