Python类似PHP的htmlspeialchars()过滤字符串函数

1:使用cgi模块的escape()函数

>>> import cgi
>>> stra = ‘<foo>\nfoo\t"bar"‘
>>> resa = cgi.escape(stra)
>>> print(resa)
&lt;foo&gt;
foo    "bar"
>>> strb = "<foo>\nfoo\t‘bar‘"
>>> resb = cgi.escape(strb)
>>> print(resb)
&lt;foo&gt;
foo    ‘bar‘

可见字符串中的单引号和双引号没有转义为字符实体,查看文档

escape(s, quote=None)
    Replace special characters "&", "<" and ">" to HTML-safe sequences.
    If the optional flag quote is true, the quotation mark character (")
    is also translated.

可知,如果给一个quote=True,那么双引号会被转义,但是单引号却不会;

resaa = cgi.escape(stra,True)
>>> print(resaa)
&lt;foo&gt;
foo    &quot;bar&quot;    #这里转义了双引号
>>> resbb = cgi.escape(strb,True)
>>> print(resbb)
&lt;foo&gt;
foo    ‘bar‘    #这里却没有转义

2:使用html模块的escape方法

>>> import html
>>> stra = ‘<foo>\nfoo\t"bar"‘
>>> resa = html.escape(stra)
>>> print(resa)
&lt;foo&gt;
foo    &quot;bar&quot;    #这里做了转义处理
>>> strb = "<foo>\nfoo\t‘bar‘"
>>> resb = html.escape(strb)
>>> print(resb)
&lt;foo&gt;
foo    'bar'  #这里做了转义处理 

html模块的escape方法默认是处理单引号和双引号的,文档:

escape(s, quote=True)
    Replace special characters "&", "<" and ">" to HTML-safe sequences.
    If the optional flag quote is true (the default), the quotation mark
    characters, both double quote (") and single quote (‘) characters are also
    translated.
时间: 2024-11-06 17:24:09

Python类似PHP的htmlspeialchars()过滤字符串函数的相关文章

php过滤字符串函数

function StripHTML($string){$pattern=array ("'<script[^>]*?>.*?</script>'si", "'<style[^>]*?>.*?</style>'si",  "'<[\/\!]*?[^<>]*?>'si",  "'([\r\n])[\s]+'",  "'&(quo

《Python CookBook2》 第一章 文本 - 过滤字符串中不属于指定集合的字符 &amp;&amp; 检查一个字符串是文本还是二进制

过滤字符串中不属于指定集合的字符 任务: 给定一个需要保留的字符串的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素. 解决方案: import string allchars = string.maketrans('','') #all chars table def makefilter(keep): delchars = allchars.translate(allchars,keep) def thefilter(s): retu

Python学习入门教程,字符串函数扩充详解

因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习并参与本教程的完善与写作.请在下方讨论区,回复相关问题.一起完善本文章教程的书写. Python字符串常用函数. 声明字符串变量: str = ‘关注做全栈攻城狮,写代码也要读书,爱全栈,更爱生活.’ 下面所有字符串函数函数,是对变量str进行操作: 求字符串长度: 函数使用: 运行结果: 值得注意

过滤字符串的Html标记 c#函数 .

1 01.public static string StripHTML(string strHtml) 2 02. { 3 03. string[] aryReg ={ 4 04. @"<script[^>]*?>.*?</script>", 5 05. 6 06. @"<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\

Python:字符串函数

String模块中的常量: string.digits:数字0~9 string.letters:所有字母(大小写) string.lowercase:所有小写字母 string.printable:可打印字符的字符串 string.punctuation:所有标点 string.uppercase:所有大写字母 [html] view plain copy >>> import string >>> string.digits '0123456789' >>

Python字符串函数rpartition与partition

字符串函数rpartition与partition 这两个函数都接收一个分割字符串作为参数,将目标字符串分割为两个部分,返回一个三元元组(head,sep,tail),包含分割符.细微区别在于前者从目标字符串的末尾也就是右边开始搜索分割符. 代码运行如下:

Python学习-字符串函数操作2

字符串函数操作 find( sub, start=None, end=None):从左到右开始查找目标子序列,找到了结束查找返回下标值,没找到返回 -1 sub:需要查找的字符串 start=None:开始查找的起始位置,默认起始的位置为可以省略(0) end=None:结束查找的位置,可以省略,默认为字符串的总长度len(str) str = 'liiuwen' m = str.find('i') n = str.find('i',4); print(m); // 1 print(n); //

Python学习-字符串函数操作3

字符串函数操作 isprintable():判断一个字符串中所有字符是否都是可打印字符的. 与isspace()函数很相似 如果字符串中的所有字符都是可打印的字符或字符串为空返回 True,否则返回 False str1 = 'gheruiv'; str2 = '\n\t'; print(str1.isprintable()); //True print(str2.isprintable()); //False istitle():判断一个字符串中所有单词的首字母是不是大写 返回值为布尔类型,T

Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊

函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 而函数式编程(请注意多了一个"式"字)--Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算. 我们首先要搞明白计算机(Computer)和计算(Compute)的概念. 在计算机的层次上,CPU执行的是加减乘除的指令代码