在python中是否有一个函数或包,我可以用来对字符串进行编码,以确保它可以作为CSS字符串使用?它需要转义所有单引号、双引号和反斜杠,并用\A替换换行符。
例如:
This is "it", isn't\
it?应该转换为
This is \"it\", isn't\\\A it?如果将非ASCII字符打印为utf-8,则它们可以保持不变.
发布于 2014-09-06 11:53:29
看看规则,所有需要转义的都是引号(单引号和双引号)和换行符。标准没有提到它,但这大概也必须扩展到反斜杠字符(通过检查数据类型确认)。
正则表达式可以这样做:
re.sub(r'''['"\n\\]''', lambda m: '\\{:X} '.format(ord(m.group())), inputstring)这将将这4个字符转义为十六进制转义,这些转义是不矛盾的;宏使用转义后的空格来描述转义之后的任何内容的转义。。这是最实用的选项;它生成一个有效的CSS字符串值。
演示:
>>> import re
>>> inputstring = '''This is "it", isn't\nit?'''
>>> re.sub(r'''['"\n\\]''', lambda m: '\\{:X} '.format(ord(m.group())), inputstring)
'This is \\22 it\\22 , isn\\27 t\\A it?'
>>> print(re.sub(r'''['"\n\\]''', lambda m: '\\{:X} '.format(ord(m.group())), inputstring))
This is \22 it\22 , isn\27 t\A it?https://stackoverflow.com/questions/25699819
复制相似问题