Python 正则表达式完整示例教程

正则表达式一般用来在文本中查找和替换字符串,再简单的文本中我们可以直接使用字符串查找,但是在大量数据和复杂结构中查找指定字符串不方便并且效率低,因此学习正则表达式显得非常有必要。

文章目录

  • 正则表达式
    • 元字符
      • 基本元字符:
      • 预定义字符
    • 使用量词
    • 贪婪量词
    • 字符分组
    • 反向引用分组
    • 非捕获分组
  • re模块介绍
    • search()和match()函数
    • match对象的方法
    • findall()和finditer()
    • 字符串分割和替换
    • 编译正则表达式

正则表达式

元字符

正则表达式字符串是有普通字符和元字符组成。
· 普通字符,是指按照字面意义表示的字符,比如abcd。
· 元字符,是预先定义好的一些特定字符,比如下面正则表达式中的 \w 以及 . ,都属于元字符。

rep = r'\w+@mail2\.sysu\.edu\.cn' # 匹配域名为mail2.sysu.edu.cn的邮箱

元字符是用来描述其他字符的特殊字符,它是由基本元字符+普通元字符构成。

基本元字符:

字符 说明
\ 转义字符
. 表示任意一个字符
+ 表示重复一次或多次
* 表示出现零次或多次
| 表示或关系,比如A
{ } 定义量词
[ ] 定义字符类
( ) 定义分组
^ 表示取反,或匹配一行的开始
$ 匹配一行的结束
- 表示区间

\ 转义符: 比如上面的 \. ,实际上是为了匹配单个 . 符号,但是 . 本身又作为元字符表示任意一个字符,因此遇到这种情况需要转义。
^ 和 $: 这个时候不仅要求匹配字符串,而且要求字符串出现在文本的开始或者结尾,例如:

text = 'My email address is [email protected]'
rep1 = r'\w+@mail2\.sysu\.edu\.cn' # r表示原始字符,避免在正则表达式中输入转义
rep2 = r'^\w+@mail2\.sysu\.edu\.cn$' # 添加了^和$,对开头结尾有要求
# \w表示任意一个字母或数字  +表示出现一次或多次

像上面这段文本,需要将邮箱提取出来的话,只能使用rep1,因为rep2要求匹配的字符串是一行的开头和结尾,只有在邮箱是单独一行才能提取出来。
字符类:字符类用中括号括起来,只要其中一个字符满足条件即可,例如:

text1 = 'I like MATLAB and Python.'
text2 = 'I like MATLAB and python.'
rep = r'[Pp]ython'  # 等效于 python1|Python
# 上述两个文本中的python都可以用下面的正则表达式匹配出来。

^,取反符:有时候,就不需要某些字符出现,可以用取反符,例如我们需要找到非数字的字符:rep = r'^[0123456789]',这个正则表达式就可以匹配一个非数字的字符。
-,表示区间:比如上面的[0123456789],可以直接写成[0-9],这个区间可以是分段的,比如[0-35-9],这个就表示除4以外的数字。

预定义字符

字符 说明
\. 匹配 .
\ 匹配\
\n 匹配换行
\r 匹配回车
\f 匹配翻页符
\t 匹配水平制表符
\v 匹配垂直制表符
\s 匹配一个空格符,等价于[\t\n\r\f\v]
\S 匹配一个非空格符,等价于[^\s]
\d 匹配一个数字,等价于[0-9]
\D 匹配一个非数字,等价于[^\d]
\w 匹配任何语言单词字符、数字、下划线等,编码为ASCII的时候只能是英语
\W 等价于[^\w]

使用量词

字符 说明
出现零次或一次
* 出现零次或多次\
+ 出现一次或多次
{n} 出现n次
{n , } 至少出现n次
{n , m} 出现n次到m次之间

贪婪量词

默认情况都是匹配的字符串越多越好,有时候要尽可能少的匹配,就需要在后面加?,表示懒惰匹配,我们具体写一个例子:

import re
text = '123456789'
rep1 = r'\d{5,8}' # 匹配12345678
m = re.search(rep1,text)
print(m)
rep2 = r'\d{5,8}?' # 匹配12345
m = re.search(rep2,text)
print(m)

Python 正则表达式完整示例教程_第1张图片

字符分组

字符分组就是将一个子字符串可看成一个整体,进行匹配,举个例子:

import re
text = '12312311aa'
rep = r'(123)+'  # 123出现一次或多次
rep1 = r'123+'  # 3出现一次或多次
m = re.search(rep1,text)
print(m)
m = re.search(rep2,text)
print(m)

Python 正则表达式完整示例教程_第2张图片
这样有什么好处呢?我们举一个具体的例子,提取一个电话号码的区号和号码:

import re
tel = '0715-53566663'
rep = r'(\d{3,5})-(\d{6,9})'
m = re.search(rep,tel)
print(m)
print(m.group()) # 返回匹配的所有字符串
print(m.groups()) # 返回匹配所有字符串,用元组装起来

Python 正则表达式完整示例教程_第3张图片
这样,可以将区号和电话号码有效分开,除此之外还可以给分组命名:

import re
tel = '0715-53566663'
rep = r'(?P\d{3,5})-(?P\d{6,9})'
m = re.search(rep,tel)
print(m)
print(m.group()) # 返回匹配的所有字符串
print(m.groups()) # 返回匹配所有字符串,用元组装起来
print(m.group('area_code'))  # 通过分组名称来引用
print(m.group('Phone_Number'))

Python 正则表达式完整示例教程_第4张图片

反向引用分组

我们在爬取网页的时候,常常会出现标签,标签的开始和结束应该是一致的,下面举例:

import re

text1 = 'Python Code'
text2 = 'Python Code</text>'</span>  <span class="token comment"># 这种情况是我们不想要的</span>
rep1 <span class="token operator">=</span> r<span class="token string">'<(\w+)>.*</(\w+)>'</span>
m <span class="token operator">=</span> re.search<span class="token punctuation">(</span>rep1,text1<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span>
m <span class="token operator">=</span> re.search<span class="token punctuation">(</span>rep1,text2<span class="token punctuation">)</span> <span class="token comment"># 同样匹配了</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/d6fe51ffddda450db5e5455102b9203b.png" target="_blank"><img alt="Python 正则表达式完整示例教程_第5张图片" src="http://img.e-com-net.com/image/info8/d6fe51ffddda450db5e5455102b9203b.png" width="722" height="159" style="border:1px solid black;"></a><br> 对上面的代码进行改进:</p> 
  <pre><code class="prism language-bash"><span class="token function">import</span> re

text1 <span class="token operator">=</span> <span class="token string">'<title>Python Code'
text2 = 'Python Code</text>'</span>
rep1 <span class="token operator">=</span> r<span class="token string">'<(\w+)>.*</\1>'</span> <span class="token comment"># 反向引用在这里,用 \1 代替了(\w+)这个分组,表示要和前面匹配的分组相同,1代表的是分组序号</span>
m <span class="token operator">=</span> re.search<span class="token punctuation">(</span>rep1,text1<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span>
m <span class="token operator">=</span> re.search<span class="token punctuation">(</span>rep1,text2<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/f38e0027d6a34432b3c684f79a2afb11.png" target="_blank"><img alt="Python 正则表达式完整示例教程_第6张图片" src="http://img.e-com-net.com/image/info8/f38e0027d6a34432b3c684f79a2afb11.png" width="775" height="164" style="border:1px solid black;"></a></p> 
  <h2>非捕获分组</h2> 
  <p>前面讲都是捕获分组,这些匹配的结果都被暂时存放在内存中,但是有时候我们只需要一些分组进行辅助匹配,但是不想保存,就可以使用非捕获分组,举一个例子,匹配.jpg文件名:</p> 
  <pre><code class="prism language-bash"><span class="token function">import</span> re

text <span class="token operator">=</span> <span class="token string">'im1.jpg,im2.jpg,im3.png'</span>
rep <span class="token operator">=</span> r<span class="token string">'\w+(.jpg)'</span>  <span class="token punctuation">(</span>.jpg<span class="token punctuation">)</span>为捕获分组
m <span class="token operator">=</span> re.findall<span class="token punctuation">(</span>rep,text<span class="token punctuation">)</span>  <span class="token comment"># 找出所有匹配的结果</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span>
rep <span class="token operator">=</span> r<span class="token string">'\w+(?:.jpg)'</span>  <span class="token punctuation">(</span>?:.jpg<span class="token punctuation">)</span>为非捕获分组
m <span class="token operator">=</span> re.findall<span class="token punctuation">(</span>rep,text<span class="token punctuation">)</span>  
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/81a3b94b036d4235893a9dcbd2e7b741.png" target="_blank"><img alt="Python 正则表达式完整示例教程_第7张图片" src="http://img.e-com-net.com/image/info8/81a3b94b036d4235893a9dcbd2e7b741.png" width="496" height="129" style="border:1px solid black;"></a><br> 使用捕获分组的时候,只会讲捕获分组里面的打印出来,这并不是我们所希望的。</p> 
  <h1>re模块介绍</h1> 
  <p>re 模块是python提供的关于正则表达式的模块,可以直接使用,下面介绍里面的主要函数。</p> 
  <h2>search()和match()函数</h2> 
  <p>search()和match()函数在使用上非常相似,区别如下:</p> 
  <ul> 
   <li>search从字符串中查找,返回第一个匹配对象</li> 
   <li>match从字符串开头开始匹配内容,返回匹配对象</li> 
  </ul> 
  <pre><code class="prism language-bash"><span class="token function">import</span> re

text <span class="token operator">=</span> <span class="token string">'My email address is sishiwu@mail2.sysu.edu.cn.'</span>
rep <span class="token operator">=</span> r<span class="token string">'\w+@mail2\.sysu\.edu\.cn'</span> <span class="token comment"># 匹配域名为mail2.sysu.edu.cn的邮箱</span>
m <span class="token operator">=</span> re.search<span class="token punctuation">(</span>rep,text<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span>
m <span class="token operator">=</span> re.match<span class="token punctuation">(</span>rep,text<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/0cd8565a982d450390d9080db7ceec5b.png" target="_blank"><img alt="Python 正则表达式完整示例教程_第8张图片" src="http://img.e-com-net.com/image/info8/0cd8565a982d450390d9080db7ceec5b.png" width="693" height="160" style="border:1px solid black;"></a><br> match与我们之前提到的 ^ 和 $ 的作用相似,一般用于验证结果。</p> 
  <h2>match对象的方法</h2> 
  <p>匹配结果返回的都是一个match对象,它常用的方法包括:group(),groups(),start(),end(),span().</p> 
  <pre><code class="prism language-bash"><span class="token function">import</span> re

text <span class="token operator">=</span> <span class="token string">'My email address is sishiwu@mail2.sysu.edu.cn.'</span>
rep <span class="token operator">=</span> r<span class="token string">'(\w+@mail2\.sysu\.edu\.cn)'</span> <span class="token comment"># 匹配域名为mail2.sysu.edu.cn的邮箱</span>
m <span class="token operator">=</span> re.search<span class="token punctuation">(</span>rep,text<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m.groups<span class="token punctuation">(</span><span class="token punctuation">))</span>
print<span class="token punctuation">(</span>m.group<span class="token punctuation">(</span><span class="token punctuation">))</span>
print<span class="token punctuation">(</span>m.start<span class="token punctuation">(</span><span class="token punctuation">))</span>
print<span class="token punctuation">(</span>m.end<span class="token punctuation">(</span><span class="token punctuation">))</span>
print<span class="token punctuation">(</span>m.span<span class="token punctuation">(</span><span class="token punctuation">))</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/26a3918c4a444b76997008a382c7fcf3.jpg" target="_blank"><img alt="Python 正则表达式完整示例教程_第9张图片" src="http://img.e-com-net.com/image/info8/26a3918c4a444b76997008a382c7fcf3.jpg" width="650" height="237" style="border:1px solid black;"></a></p> 
  <h2>findall()和finditer()</h2> 
  <h2>字符串分割和替换</h2> 
  <p>分割 split()<br> re.split(pattern, string, count(可选) , flags (可选))<br> pattern是正则表达式 , string是字符串, count是最大分割次数, flags是编译标志</p> 
  <pre><code class="prism language-bash"><span class="token function">import</span> re
p <span class="token operator">=</span> r<span class="token string">'\d+'</span> <span class="token comment"># 表示至少一个数字</span>
text <span class="token operator">=</span> <span class="token string">'AB12CD23EF'</span>
m <span class="token operator">=</span> re.split<span class="token punctuation">(</span>p,text<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/b469468c6af141a1b84292bdb8489eec.png" target="_blank"><img alt="Python 正则表达式完整示例教程_第10张图片" src="http://img.e-com-net.com/image/info8/b469468c6af141a1b84292bdb8489eec.png" width="326" height="120" style="border:1px solid black;"></a><br> 替换 sub()<br> re.sub(pattern, sym, text, count, flags)<br> pattern是正则表达式, sym是替换的字符串, text是查找的文本, count替换的次数, flags编译标志</p> 
  <pre><code class="prism language-bash"><span class="token function">import</span> re
p <span class="token operator">=</span> r<span class="token string">'\d+'</span> <span class="token comment"># 表示至少一个数字</span>
text <span class="token operator">=</span> <span class="token string">'AB12CD23EF'</span>
m <span class="token operator">=</span> re.sub<span class="token punctuation">(</span>p, <span class="token string">'#'</span>, text<span class="token punctuation">)</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/ad634b306a5e48129a9884da448e4716.png" target="_blank"><img alt="Python 正则表达式完整示例教程_第11张图片" src="http://img.e-com-net.com/image/info8/ad634b306a5e48129a9884da448e4716.png" width="404" height="158" style="border:1px solid black;"></a></p> 
  <h2>编译正则表达式</h2> 
  <p>为了能够重复使用正则表达式,并且提高程序运行速度,可以使用编译后正则表达式,返回一个regex对象。</p> 
  <pre><code class="prism language-bash"><span class="token function">import</span> re
p <span class="token operator">=</span> r<span class="token string">'\d+'</span> <span class="token comment"># 表示至少一个数字</span>
rep <span class="token operator">=</span> re.compile<span class="token punctuation">(</span>p<span class="token punctuation">)</span>  <span class="token comment"># 注意</span>
text <span class="token operator">=</span> <span class="token string">'AB12CD23EF'</span>
m <span class="token operator">=</span> rep.sub<span class="token punctuation">(</span><span class="token string">'#'</span>, text<span class="token punctuation">)</span>  <span class="token comment"># 注意,虽然函数名一样,但是一个是rep对象的方法,一个是re模块中的函数</span>
<span class="token comment"># 输入参数也变化了</span>
print<span class="token punctuation">(</span>m<span class="token punctuation">)</span></code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/46c6ff71fe344891beb6f580bf90eb2b.png" target="_blank"><img alt="Python 正则表达式完整示例教程_第12张图片" src="http://img.e-com-net.com/image/info8/46c6ff71fe344891beb6f580bf90eb2b.png" width="506" height="179" style="border:1px solid black;"></a><br> 其使用方法都是一样的,效果也相同。</p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1276205044642889728"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Python笔记)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1834872645812842496.htm"
                           title="Python笔记6----数组" target="_blank">Python笔记6----数组</a>
                        <span class="text-muted">weixin_34293911</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a><a class="tag" taget="_blank" href="/search/c%2Fc%2B%2B/1.htm">c/c++</a>
                        <div>1、Python中的数组形式:用list和tuple等数据结构表示数组一维数组:list=[1,2,3,4]二维数组:list=[[1,2,3],[4,5,6],[7,8,9]]用array模块:array模块需要加载,而且运用的较少通过array函数创建数组(数组中的元素可以不是同一种类型),array.array('B',range(5))>>array('B',[1,2,3,4,5])提供a</div>
                    </li>
                    <li><a href="/article/1834670070010310656.htm"
                           title="【代码随想录python笔记整理】第一课 · A+B 问题1" target="_blank">【代码随想录python笔记整理】第一课 · A+B 问题1</a>
                        <span class="text-muted">南星六月雪</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E5%88%B7%E9%A2%98%E7%AC%94%E8%AE%B0/1.htm">刷题笔记</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>前言:本笔记仅仅只是对内容的整理和自行消化,并不是完整内容,如有侵权,联系立删。一、数据类型Python中有一些常见数据类型,包括数字类型,布尔类型,字符串类型。其中,数字类型又分为整数类型和浮点数类型。整数类型-1、0、1浮点数类型3.14布尔类型True=1;False=0字符串类型'Hello'、"Helllo"二、输入输出1、输入:输入采用input()函数,再将变量与其建立联系。在inp</div>
                    </li>
                    <li><a href="/article/1833480808011231232.htm"
                           title="【Python笔记】向量:@classmethod与 @staticmethod。零基础" target="_blank">【Python笔记】向量:@classmethod与 @staticmethod。零基础</a>
                        <span class="text-muted">万物皆可.C</span>
<a class="tag" taget="_blank" href="/search/Python%E7%AC%94%E8%AE%B0/1.htm">Python笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>类成员比较@classmethod与@staticmethod共同点:两个都是装饰器,装饰的成员函数可以通过类名.方法名(…)来调用区别:最显著的特点是classmethod需要传递一个参数cls,而staticmethod不需要。因此可以访问、修改类的属性,类的方法,实例化对象等,避免硬编码;而staticmethod不行,classmethod可以判断出自己是通过基类被调用,还是通过某个子类被</div>
                    </li>
                    <li><a href="/article/1833348868046155776.htm"
                           title="python学习笔记08_赋值运算、逻辑运算、表达式、短路原则" target="_blank">python学习笔记08_赋值运算、逻辑运算、表达式、短路原则</a>
                        <span class="text-muted">flamingocc</span>

                        <div>python笔记081.赋值运算符num+=1等价于num=num+1num-=1等价于num=num-1num*=1等价于num=num*1num/=1等价于num=num/1num//2等价于num=num//2num%=2等价于num/2的余数num**2等价于num=num*num2.逻辑运算符逻辑运算符包含:not、and、or2.1and的用法:(且、并且)写法:条件1and条件2eg</div>
                    </li>
                    <li><a href="/article/1764314377588137984.htm"
                           title="2.25python笔记 高阶编程" target="_blank">2.25python笔记 高阶编程</a>
                        <span class="text-muted">13351</span>

                        <div>@[TOC](2.25学堂在线python学习笔记高阶编程)#高阶编程1.利用二分法查找一个字符是否在某个字符串当中基线条件:当s=''时,返回False当len(s)=1且s==char时返回True当len(s)>1且s[mid]>char时,返回isIn(char,s[:mid])否则当s[mid]1:ifs[mid]>char:print(s)returnisIn(char,s[:mid]</div>
                    </li>
                    <li><a href="/article/1761739643272912896.htm"
                           title="Python笔记五之正则表达式" target="_blank">Python笔记五之正则表达式</a>
                        <span class="text-muted"></span>
<a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AFpython%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">后端python正则表达式</a>
                        <div>本文首发于公众号:Hunter后端原文链接:Python笔记五之正则表达式这一篇笔记介绍在Python里使用正则表达式。正则表达式,RegularExpression,可用于在一个目标字符串里对于指定模式的字符进行查找、替换、分割等操作。比如,判断某个字符串里是否都是数字,或者是否包含指定字符串,又或者更直接的例子是判断电话号码或者邮箱是否合法等。这一篇笔记里,我们将先介绍一个正则表达式的函数,并</div>
                    </li>
                    <li><a href="/article/1757562555796045824.htm"
                           title="python笔记——jieba库" target="_blank">python笔记——jieba库</a>
                        <span class="text-muted">Toby不写代码</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0/1.htm">python学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>文章目录一.概述二.jieba库使用三.实例一.概述1.jieba库概述jieba库是一个重要的第三方中文分词函数库,不是安装包自带的,需要通过pip指令安装pip3installjieba二.jieba库使用1.库函数jieba.cut(s)——精确模式,返回一个可迭代数据类型jieba.cut(s,cut_all=True)——全模式,输出文本s中可能的单词jieba.cut_for_sear</div>
                    </li>
                    <li><a href="/article/1757023973977112576.htm"
                           title="[韩顺平]python笔记" target="_blank">[韩顺平]python笔记</a>
                        <span class="text-muted">超级用户 root</span>
<a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>AI工程师、运维工程师python排名逐年上升,为什么?python对大数据分析、人工智能中关键的机器学习、深度学习都提供有力的支持Python支持最庞大的代码库,功能超强数据分析:numpy/pandas/os机器学习:tensorflow/scikit-learn/theano爬虫:urllib/reques/bs4/scrapy网页开发:Django/falsk/web运维:saltstac</div>
                    </li>
                    <li><a href="/article/1756946275527311360.htm"
                           title="一文教会你,Python数据如何存储" target="_blank">一文教会你,Python数据如何存储</a>
                        <span class="text-muted">学Python的小瑜</span>

                        <div>转载自志斌的Python笔记3月28日今天呢,小瑜专门写一篇关于数据存储的文章,让大家清楚的了解数据存储的方式,以及在什么情况下,使用什么存储方式。本文将分三个方面来介绍数据存储:1.文件存储、2.关系型数据库存储、3.非关系型数据库存储。废话少说,让我们直接来看正文吧!一、文件存储1.1TXT文本将数据存储到TXT文本的操作十分简单,在之前文章已经简单介绍过,而且TXT文本基本兼容任何平台,但是</div>
                    </li>
                    <li><a href="/article/1756730246423396352.htm"
                           title="Python笔记——绘制雷达图" target="_blank">Python笔记——绘制雷达图</a>
                        <span class="text-muted">没昔</span>

                        <div>代码#雷达图frompyechartsimportoptionsasoptsfrompyecharts.chartsimportPage,Radar#两组数据的对比v1=[[4300,10000,28000,35000,50000,19000]]v2=[[5000,14000,28000,31000,42000,21000]]#返回Radar图表对象数据处理完整之后通过雷达对象进行转换defrad</div>
                    </li>
                    <li><a href="/article/1756481301470265344.htm"
                           title="Delphi 程序直接调用 Python 的函数" target="_blank">Delphi 程序直接调用 Python 的函数</a>
                        <span class="text-muted">pcplayer</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>在本系列的第一篇博客文章:Delphi程序员初学Python笔记-CSDN博客在这篇文章里面,我提到,一个Python的函数,我用Delphi无法直接调用它,所以我对它做了一个Python的包装。原因是,那是我第一次学习使用Python4Delphi这个控件。那时候要执行Python代码,我只会使用PythonEngine1.ExecStrings(Python代码)这样的方式。这样做,就是在De</div>
                    </li>
                    <li><a href="/article/1756233138775801856.htm"
                           title="python小结" target="_blank">python小结</a>
                        <span class="text-muted">张叁疯_</span>

                        <div>本周整理了python学习笔记复习旧的,顺便整理新的,笔记分享在了有道云链接如下阿龙的python笔记都是基础知识,希望在今后能成体系,根据案例学python</div>
                    </li>
                    <li><a href="/article/1755794917600280576.htm"
                           title="大学python笔记整理_python 笔记整理" target="_blank">大学python笔记整理_python 笔记整理</a>
                        <span class="text-muted">余虹的眼</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%AD%A6python%E7%AC%94%E8%AE%B0%E6%95%B4%E7%90%86/1.htm">大学python笔记整理</a>
                        <div>Pythonisdigit()方法检测字符串是否只由数字组成。Pythonint()函数用于将一个字符串或数字转换为整型。判断字符、列表、元组等的长度或项目个数:Pythonlen()。enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中。(把下标取出来)python中单引号和双引号使用完全相同。文件操作:内</div>
                    </li>
                    <li><a href="/article/1755794533733384192.htm"
                           title="Python笔记(十)" target="_blank">Python笔记(十)</a>
                        <span class="text-muted">Lzehui</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>文件编码概念编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑编码有许多种,我们最常用的是UTF—8编码文件的读取对文件进行操作的基本步骤,大概可以分为三步1、打开文件2、读写文件3、关闭文件注意:可以只打开和关闭文件,不进行任何读写open()打开函数在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下open(name,mode,encoding</div>
                    </li>
                    <li><a href="/article/1755794533297176576.htm"
                           title="Python笔记(八)" target="_blank">Python笔记(八)</a>
                        <span class="text-muted">Lzehui</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>数据容器:dict(字典、映射)字典的定义字典的定义,同样使用{},不过存储的元素是一个个的:键值对,如下语法: #定义字典字面量 {key:value,key:value,……,key:value} #定义字典字面量 mt_dict={key:value,key:value,……,key:value} #定义空字典 my_dict={}   #空字典定义方式1 my_dict={}   #空字典</div>
                    </li>
                    <li><a href="/article/1755794405907775488.htm"
                           title="Python笔记(三)" target="_blank">Python笔记(三)</a>
                        <span class="text-muted">Lzehui</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>while循环的基础应用语法:while条件:条件满足时,做的事情 i=0 whilei<100:  print("循环100次")  i+=11.while的条件需要得到布尔类型,True表示继续循环,False表示结束循环2.需要设置循环终止的条件,如i+=1配合i<100,就能保证100次后停止,否则将无限循环3.空格缩进,冒号和if判断一样,都需要设置while循环的嵌套使用基础语法:wh</div>
                    </li>
                    <li><a href="/article/1755794406583058432.htm"
                           title="Python笔记(五)" target="_blank">Python笔记(五)</a>
                        <span class="text-muted">Lzehui</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>数据容器入门python中的数据容器:一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。根据容器特点的不同,如:是否支持重复元素是否可以修改是否有序,等分为5类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)数据容器:list(列表)列表的定义基本语法 #字面量 [元素1,元素2</div>
                    </li>
                    <li><a href="/article/1755794407086374912.htm"
                           title="Python笔记(七)" target="_blank">Python笔记(七)</a>
                        <span class="text-muted">Lzehui</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>集合的定义和操作集合中元素不能重复,且是无序的,区别于列表,元组,字符串基本语法: #定义集合字面量 {元素,元素,……,元素} #定义集合变量 变量名称={元素,元素,……,元素} #定义空集合 变量名称=set()和列表、元组、字符串等定义基本相同;列表使用:[]元组使用:()字符串使用:""集合使用:{}集合常规操作:因为集合是无序的,所以集合不支持:下标索引访问但集合和列表一样,是允许修改</div>
                    </li>
                    <li><a href="/article/1755794279566950400.htm"
                           title="Python笔记(一)" target="_blank">Python笔记(一)</a>
                        <span class="text-muted">Lzehui</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>字面量python中常用的有6种值(数据)的类型类型描述说明数字(Number)支持:整数(int)浮点数(float)复数(complex)布尔(bool)整数(int),如:10、-10浮点数(float),如:13.14、-13.14复数(complex),如:4+3j,以j结尾表示复数布尔(bool)表达现实生活中的逻辑,即真和假,True表示真,False表示假。True本质上是一个数字</div>
                    </li>
                    <li><a href="/article/1755794150319472640.htm"
                           title="Python笔记(九)" target="_blank">Python笔记(九)</a>
                        <span class="text-muted">Lzehui</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a>
                        <div>函数多返回值语法: deftest_return():  return1,2 x,y=test_return() print(x)  #结果1 pirnt(y)  #结果2按照返回值的顺序,写对应顺序的多个变量接收即可变量之间用逗号隔开支持不同类型的数据return函数的多种参数使用形式函数参数种类使用方式上的不同,函数有4中常见参数使用方式:位置参数关键字参数缺省参数不定长参数位置参数:调用函数</div>
                    </li>
                    <li><a href="/article/1755768097169489920.htm"
                           title="python笔记12" target="_blank">python笔记12</a>
                        <span class="text-muted">没有名字的鬼</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">python学习笔记</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>目录1、文件的基本操作步骤1.打开文件(OpenFile):2.读取文件内容(ReadFile):3.写入文件内容(WritetoFile):4.file.seek()5.文件复制:6.with语句:2、数据的组织维度1.一维数据:2.二维数据:3.多维数据:3、一维数组的存储与读取1.使用内置的文件I/O方法:存储数据:读取数据:2.使用NumPy库:存储数据:读取数据:3.使用Pandas库:</div>
                    </li>
                    <li><a href="/article/1755223382493773824.htm"
                           title="9.18 Python笔记" target="_blank">9.18 Python笔记</a>
                        <span class="text-muted">谦友111</span>

                        <div>一.1.Python的基本概念具有高效率的数据结构,简单有效实现面向对象编程。Python(1989)比Java(1991)早,但是Java称作一个,因为Python就龟叔一个人开创那些,代码简单但是功能强大,对计算机功能很高,而Java由一个团队开创。2.Python的特点简单易学自由开放跨平台可嵌入性丰富的库Python可以做什么?1.软件开发2.科学运算3.自动化运维4.云计算5.WEB开发</div>
                    </li>
                    <li><a href="/article/1754919016083767296.htm"
                           title="一个不会java程序员的python笔记-切片" target="_blank">一个不会java程序员的python笔记-切片</a>
                        <span class="text-muted">aersilan20200907</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>文章目录前言一、切list和tuple二、判断是不是回数三、手写trim总结前言Python学习入门之切片slice的使用切片这东西还是很好用的,而且简单,切片,就是像切土豆一样,想切哪儿就切哪儿,想怎么切就怎么切。一、切list和tuple切一个list,随便切:#listL=['messi','pique','xavi']#切头print(L[0])#messi#切尾print(L[-1])#</div>
                    </li>
                    <li><a href="/article/1754712219846721536.htm"
                           title="python学习笔记20_字符编码与转码" target="_blank">python学习笔记20_字符编码与转码</a>
                        <span class="text-muted">flamingocc</span>

                        <div>python笔记20python字符编码与转码详细文章:http://www.cnblogs.com/yuanchenqi/articles/5956943.htmlhttp://www.diveintopython3.net/strings.html需知:1.在python2默认编码是ASCII,python3里默认是unicode2.unicode分为utf-32(占4个字节),utf-16(</div>
                    </li>
                    <li><a href="/article/1754375936628768768.htm"
                           title="python笔记:8.2.3 非参数检验的基本问题_游程检验" target="_blank">python笔记:8.2.3 非参数检验的基本问题_游程检验</a>
                        <span class="text-muted">老狼8848</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0/1.htm">python学习</a>
                        <div>#-*-coding:utf-8-*-"""CreatedonSunJul2114:26:222019@author:User"""#《Python数据分析基础》中国统计出版社importnumpyasnpfromscipyimportstatsimportpandasaspdimportstatsmodels.apiassm#importstatsmodels.formula.apiassmf#</div>
                    </li>
                    <li><a href="/article/1754073428232519680.htm"
                           title="『Python 干货』#2 NumPy(简明)" target="_blank">『Python 干货』#2 NumPy(简明)</a>
                        <span class="text-muted">Hwcoder</span>

                        <div>访问博客查看本文最新内容,排版更美观ヾ(•ω•`)o如有错误欢迎指出~Python系列学习笔记:Python笔记#1基础语法Python笔记#2NumPyPython笔记#3Matplotlib学习MachineLearning的时候发现需要用许多矩阵运算和画图的库,本文将以实用主义的方式记录每次遇到的新用法。2021年贵系的暑培新增了「科学计算」内容,本文部分内容参考了清华LZJ同学的教程,部分</div>
                    </li>
                    <li><a href="/article/1753911238510788608.htm"
                           title="Python笔记" target="_blank">Python笔记</a>
                        <span class="text-muted">QinChu</span>

                        <div>PART1基本定义变量定义:用来储存值的元素命名时只能包括字母、数字、下划线变量对应的值以最近一次更新为主变量类型使用type(变量)函数查询类型-非数字型1.字符串str一系列字符,用引号括起来,是编程语言中表示文本的数据类型用+号拼接字符串,如果有数字,需要对数字使用str()函数//格式化输出通过使用格式化操作符%来实现信息的整体输出1)%和不同的字符连用构成不同类型的格式化操作符,%起一个</div>
                    </li>
                    <li><a href="/article/1753806047920799744.htm"
                           title="#周检视# 坚持努力 0317---0325" target="_blank">#周检视# 坚持努力 0317---0325</a>
                        <span class="text-muted">小灵仙子</span>

                        <div>第一个90天目标检视目标1:纸质书2本目标2:开启Python笔记目标3:亲子英文阅读打卡本周的主题:忙碌的一周本周计划:[x]顺利完成软件测试大赛海选工作[]selenium视频学习3个[x]Jenkins的邮件配置一、家庭:1,周三晚上陪着孩子去学跆拳道,在道馆和妈妈视频。爸爸还是坐在凳子上就睡着了。2,连续第二个周末又是上班,感谢公公婆婆帮我带着孩子。孩子大了,老人家带着越来越吃力了。二、健</div>
                    </li>
                    <li><a href="/article/1753592127847153664.htm"
                           title="python笔记11" target="_blank">python笔记11</a>
                        <span class="text-muted">没有名字的鬼</span>
<a class="tag" taget="_blank" href="/search/python%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">python学习笔记</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a>
                        <div>1、模块简介在Python中,模块是一种组织代码的方式,允许你将相关的代码放在一个文件中,以便更好地组织和重用。模块可以包含变量、函数和类等。下面是关于Python模块的一些基本概念:1.创建模块要创建一个模块,只需创建一个包含Python代码的文件,文件的扩展名通常是.py。例如,如果你有一个名为的文件mymodule.py,它可以被视为一个模块。#mymodule.pydefsay_hello</div>
                    </li>
                    <li><a href="/article/1753188296780955648.htm"
                           title="【gRPC】protoc文件转py文件" target="_blank">【gRPC】protoc文件转py文件</a>
                        <span class="text-muted">陀螺蚁</span>
<a class="tag" taget="_blank" href="/search/Python3/1.htm">Python3</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>以下基于Win系统下Python的venv虚拟环境演示《Python3笔记之venv虚拟环境》《Python笔记之pip国内镜像修改方法》在桌面创建个test目录作为项目目录,初始化venv环境后,安装基础依赖:pipinstallgrpciogrpcio-reflectiongrpcio-toolsprotobufgoogleapis-common-protos建立个项目结构:|-example</div>
                    </li>
                                <li><a href="/article/24.htm"
                                       title="tomcat基础与部署发布" target="_blank">tomcat基础与部署发布</a>
                                    <span class="text-muted">暗黑小菠萝</span>
<a class="tag" taget="_blank" href="/search/Tomcat+java+web/1.htm">Tomcat java web</a>
                                    <div>从51cto搬家了,以后会更新在这里方便自己查看。 
做项目一直用tomcat,都是配置到eclipse中使用,这几天有时间整理一下使用心得,有一些自己配置遇到的细节问题。 
Tomcat:一个Servlets和JSP页面的容器,以提供网站服务。 
一、Tomcat安装 
    安装方式:①运行.exe安装包 
     &n</div>
                                </li>
                                <li><a href="/article/151.htm"
                                       title="网站架构发展的过程" target="_blank">网站架构发展的过程</a>
                                    <span class="text-muted">ayaoxinchao</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">应用服务器</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%AB%99%E6%9E%B6%E6%9E%84/1.htm">网站架构</a>
                                    <div>1.初始阶段网站架构:应用程序、数据库、文件等资源在同一个服务器上 
2.应用服务和数据服务分离:应用服务器、数据库服务器、文件服务器 
3.使用缓存改善网站性能:为应用服务器提供本地缓存,但受限于应用服务器的内存容量,可以使用专门的缓存服务器,提供分布式缓存服务器架构 
4.使用应用服务器集群改善网站的并发处理能力:使用负载均衡调度服务器,将来自客户端浏览器的访问请求分发到应用服务器集群中的任何</div>
                                </li>
                                <li><a href="/article/278.htm"
                                       title="[信息与安全]数据库的备份问题" target="_blank">[信息与安全]数据库的备份问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                                    <div> 
 
      如果你们建设的信息系统是采用中心-分支的模式,那么这里有一个问题 
  
 如果你的数据来自中心数据库,那么中心数据库如果出现故障,你的分支机构的数据如何保证安全呢? 
 
   是否应该在这种信息系统结构的基础上进行改造,容许分支机构的信息系统也备份一个中心数据库的文件呢? 
 
 &n</div>
                                </li>
                                <li><a href="/article/405.htm"
                                       title="使用maven tomcat plugin插件debug关联源代码" target="_blank">使用maven tomcat plugin插件debug关联源代码</a>
                                    <span class="text-muted">商人shang</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/debug/1.htm">debug</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E7%9C%8B%E6%BA%90%E7%A0%81/1.htm">查看源码</a><a class="tag" taget="_blank" href="/search/tomcat-plugin/1.htm">tomcat-plugin</a>
                                    <div>*首先需要配置好'''maven-tomcat7-plugin''',参见[[Maven开发Web项目]]的'''Tomcat'''部分。 
*配置好后,在[[Eclipse]]中打开'''Debug Configurations'''界面,在'''Maven Build'''项下新建当前工程的调试。在'''Main'''选项卡中点击'''Browse Workspace...'''选择需要开发的</div>
                                </li>
                                <li><a href="/article/532.htm"
                                       title="大访问量高并发" target="_blank">大访问量高并发</a>
                                    <span class="text-muted">oloz</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E8%AE%BF%E9%97%AE%E9%87%8F%E9%AB%98%E5%B9%B6%E5%8F%91/1.htm">大访问量高并发</a>
                                    <div>大访问量高并发的网站主要压力还是在于数据库的操作上,尽量避免频繁的请求数据库。下面简 
 
要列出几点解决方案: 
 
01、优化你的代码和查询语句,合理使用索引 
 
02、使用缓存技术例如memcache、ecache将不经常变化的数据放入缓存之中 
 
03、采用服务器集群、负载均衡分担大访问量高并发压力 
 
04、数据读写分离 
 
05、合理选用框架,合理架构(推荐分布式架构)。 
 </div>
                                </li>
                                <li><a href="/article/659.htm"
                                       title="cache 服务器" target="_blank">cache 服务器</a>
                                    <span class="text-muted">小猪猪08</span>
<a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a>
                                    <div>Cache   即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近期开发的项目中有所体会,写下来当作总结也希望能跟大家一起探讨探讨,有错误的地方希望大家批评指正。 
  1.Cache   是怎么样工作的? 
  Cache   是分配在服务器上</div>
                                </li>
                                <li><a href="/article/786.htm"
                                       title="mysql存储过程" target="_blank">mysql存储过程</a>
                                    <span class="text-muted">香水浓</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>Description:插入大量测试数据 
 
use xmpl;

drop procedure if exists mockup_test_data_sp;

create procedure mockup_test_data_sp(
	in number_of_records int
)
begin
	declare cnt int;
	declare name varch</div>
                                </li>
                                <li><a href="/article/913.htm"
                                       title="CSS的class、id、css文件名的常用命名规则" target="_blank">CSS的class、id、css文件名的常用命名规则</a>
                                    <span class="text-muted">agevs</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/Ajax/1.htm">Ajax</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>  CSS的class、id、css文件名的常用命名规则 
    (一)常用的CSS命名规则 
  头:header 
  内容:content/container 
  尾:footer 
  导航:nav 
  侧栏:sidebar 
  栏目:column 
  页面外围控制整体布局宽度:wrapper 
  左右中:left right </div>
                                </li>
                                <li><a href="/article/1040.htm"
                                       title="全局数据源" target="_blank">全局数据源</a>
                                    <span class="text-muted">AILIKES</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a><a class="tag" taget="_blank" href="/search/JNDI/1.htm">JNDI</a>
                                    <div>实验目的:为了研究两个项目同时访问一个全局数据源的时候是创建了一个数据源对象,还是创建了两个数据源对象。 
1:将diuid和mysql驱动包(druid-1.0.2.jar和mysql-connector-java-5.1.15.jar)copy至%TOMCAT_HOME%/lib下;2:配置数据源,将JNDI在%TOMCAT_HOME%/conf/context.xml中配置好,格式如下:&l</div>
                                </li>
                                <li><a href="/article/1167.htm"
                                       title="MYSQL的随机查询的实现方法" target="_blank">MYSQL的随机查询的实现方法</a>
                                    <span class="text-muted">baalwolf</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,</div>
                                </li>
                                <li><a href="/article/1294.htm"
                                       title="JAVA的getBytes()方法" target="_blank">JAVA的getBytes()方法</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/unix/1.htm">unix</a><a class="tag" taget="_blank" href="/search/OS/1.htm">OS</a>
                                    <div>    在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这个表示在不同OS下,返回的东西不一样!  
    String.getBytes(String decode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如: 
    byte[] b_gbk = "</div>
                                </li>
                                <li><a href="/article/1421.htm"
                                       title="AngularJS中操作Cookies" target="_blank">AngularJS中操作Cookies</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/Cookies/1.htm">Cookies</a>
                                    <div>        如果你的应用足够大、足够复杂,那么你很快就会遇到这样一咱种情况:你需要在客户端存储一些状态信息,这些状态信息是跨session(会话)的。你可能还记得利用document.cookie接口直接操作纯文本cookie的痛苦经历。 
        幸运的是,这种方式已经一去不复返了,在所有现代浏览器中几乎</div>
                                </li>
                                <li><a href="/article/1548.htm"
                                       title="[Maven学习笔记五]Maven聚合和继承特性" target="_blank">[Maven学习笔记五]Maven聚合和继承特性</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a>
                                    <div>Maven聚合 
  
在实际的项目中,一个项目通常会划分为多个模块,为了说明问题,以用户登陆这个小web应用为例。通常一个web应用分为三个模块:   
1. 模型和数据持久化层user-core, 
2. 业务逻辑层user-service以 
3. web展现层user-web, 
user-service依赖于user-core 
user-web依赖于user-core和use</div>
                                </li>
                                <li><a href="/article/1675.htm"
                                       title="【JVM七】JVM知识点总结" target="_blank">【JVM七】JVM知识点总结</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a>
                                    <div>  1. JVM运行模式 
1.1 JVM运行时分为-server和-client两种模式,在32位机器上只有client模式的JVM。通常,64位的JVM默认都是使用server模式,因为server模式的JVM虽然启动慢点,但是,在运行过程,JVM会尽可能的进行优化 
1.2 JVM分为三种字节码解释执行方式:mixed mode, interpret mode以及compiler </div>
                                </li>
                                <li><a href="/article/1802.htm"
                                       title="linux下查看nginx、apache、mysql、php的编译参数" target="_blank">linux下查看nginx、apache、mysql、php的编译参数</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>在linux平台下的应用,最流行的莫过于nginx、apache、mysql、php几个。而这几个常用的应用,在手工编译完以后,在其他一些情况下(如:新增模块),往往想要查看当初都使用了那些参数进行的编译。这时候就可以利用以下方法查看。 
1、nginx 
[root@361way ~]# /App/nginx/sbin/nginx -V
nginx: nginx version: nginx/</div>
                                </li>
                                <li><a href="/article/1929.htm"
                                       title="unity中运用Resources.Load的方法?" target="_blank">unity中运用Resources.Load的方法?</a>
                                    <span class="text-muted">brotherlamp</span>
<a class="tag" taget="_blank" href="/search/unity%E8%A7%86%E9%A2%91/1.htm">unity视频</a><a class="tag" taget="_blank" href="/search/unity%E8%B5%84%E6%96%99/1.htm">unity资料</a><a class="tag" taget="_blank" href="/search/unity%E8%87%AA%E5%AD%A6/1.htm">unity自学</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/unity%E6%95%99%E7%A8%8B/1.htm">unity教程</a>
                                    <div>问:unity中运用Resources.Load的方法? 
答:Resources.Load是unity本地动态加载资本所用的方法,也即是你想动态加载的时分才用到它,比方枪弹,特效,某些实时替换的图像什么的,主张此文件夹不要放太多东西,在打包的时分,它会独自把里边的一切东西都会集打包到一同,不论里边有没有你用的东西,所以大多数资本应该是自个建文件放置 
1、unity实时替换的物体即是依据环境条件</div>
                                </li>
                                <li><a href="/article/2056.htm"
                                       title="线段树-入门" target="_blank">线段树-入门</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E7%BA%BF%E6%AE%B5%E6%A0%91/1.htm">线段树</a>
                                    <div>


/**
 * 线段树入门
 * 问题:已知线段[2,5] [4,6] [0,7];求点2,4,7分别出现了多少次
 * 以下代码建立的线段树用链表来保存,且树的叶子结点类似[i,i]
 * 
 * 参考链接:http://hi.baidu.com/semluhiigubbqvq/item/be736a33a8864789f4e4ad18
 * @author lijinna</div>
                                </li>
                                <li><a href="/article/2183.htm"
                                       title="全选与反选" target="_blank">全选与反选</a>
                                    <span class="text-muted">chicony</span>
<a class="tag" taget="_blank" href="/search/%E5%85%A8%E9%80%89/1.htm">全选</a>
                                    <div>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>全选与反选</title>
</div>
                                </li>
                                <li><a href="/article/2310.htm"
                                       title="vim一些简单记录" target="_blank">vim一些简单记录</a>
                                    <span class="text-muted">chenchao051</span>
<a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a>
                                    <div>mac在/usr/share/vim/vimrc linux在/etc/vimrc 
  
1、问:后退键不能删除数据,不能往后退怎么办? 
      答:在vimrc中加入set backspace=2 
  
2、问:如何控制tab键的缩进? 
      答:在vimrc中加入set tabstop=4 (任何</div>
                                </li>
                                <li><a href="/article/2437.htm"
                                       title="Sublime Text 快捷键" target="_blank">Sublime Text 快捷键</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/%E5%BF%AB%E6%8D%B7%E9%94%AE/1.htm">快捷键</a><a class="tag" taget="_blank" href="/search/sublime/1.htm">sublime</a>
                                    <div>[size=large][/size]Sublime Text快捷键:Ctrl+Shift+P:打开命令面板Ctrl+P:搜索项目中的文件Ctrl+G:跳转到第几行Ctrl+W:关闭当前打开文件Ctrl+Shift+W:关闭所有打开文件Ctrl+Shift+V:粘贴并格式化Ctrl+D:选择单词,重复可增加选择下一个相同的单词Ctrl+L:选择行,重复可依次增加选择下一行Ctrl+Shift+L:</div>
                                </li>
                                <li><a href="/article/2564.htm"
                                       title="php 引用(&)详解" target="_blank">php 引用(&)详解</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a>
                                    <div>在PHP 中引用的意思是:不同的名字访问同一个变量内容. 与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 变量的引用 PHP 的引用允许你用两个变量来指向同一个内容   复制代码代码如下:   
<?  
$a="ABC";  
$b =&$a;  
echo</div>
                                </li>
                                <li><a href="/article/2691.htm"
                                       title="SVN中trunk,branches,tags用法详解" target="_blank">SVN中trunk,branches,tags用法详解</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/SVN/1.htm">SVN</a>
                                    <div>Subversion有一个很标准的目录结构,是这样的。比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tags这是一个标准的布局,trunk为主开发目录,branches为分支开发目录,tags为tag存档目录(不允许修改)。但是具体这几个目录应该如何使用,svn并没有明确的规范,更多的还是用户自己的习惯。</div>
                                </li>
                                <li><a href="/article/2818.htm"
                                       title="对软件设计的思考" target="_blank">对软件设计的思考</a>
                                    <span class="text-muted">e200702084</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a><a class="tag" taget="_blank" href="/search/%E6%B4%BB%E5%8A%A8/1.htm">活动</a>
                                    <div>软件设计的宏观与微观  
 
   软件开发是一种高智商的开发活动。一个优秀的软件设计人员不仅要从宏观上把握软件之间的开发,也要从微观上把握软件之间的开发。宏观上,可以应用面向对象设计,采用流行的SSH架构,采用web层,业务逻辑层,持久层分层架构。采用设计模式提供系统的健壮性和可维护性。微观上,对于一个类,甚至方法的调用,从计算机的角度模拟程序的运行情况。了解内存分配,参数传</div>
                                </li>
                                <li><a href="/article/2945.htm"
                                       title="同步、异步、阻塞、非阻塞" target="_blank">同步、异步、阻塞、非阻塞</a>
                                    <span class="text-muted">geeksun</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%9E%E9%98%BB%E5%A1%9E/1.htm">非阻塞</a>
                                    <div>同步、异步、阻塞、非阻塞这几个概念有时有点混淆,在此文试图解释一下。 
  
同步:发出方法调用后,当没有返回结果,当前线程会一直在等待(阻塞)状态。 
场景:打电话,营业厅窗口办业务、B/S架构的http请求-响应模式。 
  
异步:方法调用后不立即返回结果,调用结果通过状态、通知或回调通知方法调用者或接收者。异步方法调用后,当前线程不会阻塞,会继续执行其他任务。 
实现:</div>
                                </li>
                                <li><a href="/article/3072.htm"
                                       title="Reverse SSH Tunnel 反向打洞實錄" target="_blank">Reverse SSH Tunnel 反向打洞實錄</a>
                                    <span class="text-muted">hongtoushizi</span>
<a class="tag" taget="_blank" href="/search/ssh/1.htm">ssh</a>
                                    <div>實際的操作步驟:  
# 首先,在客戶那理的機器下指令連回我們自己的 Server,並設定自己 Server 上的 12345 port 會對應到幾器上的 SSH port
ssh -NfR 12345:localhost:22 fred@myhost.com

# 然後在 myhost 的機器上連自己的 12345 port,就可以連回在客戶那的機器
ssh localhost -p 1</div>
                                </li>
                                <li><a href="/article/3199.htm"
                                       title="Hibernate中的缓存" target="_blank">Hibernate中的缓存</a>
                                    <span class="text-muted">Josh_Persistence</span>
<a class="tag" taget="_blank" href="/search/%E4%B8%80%E7%BA%A7%E7%BC%93%E5%AD%98/1.htm">一级缓存</a><a class="tag" taget="_blank" href="/search/Hiberante%E7%BC%93%E5%AD%98/1.htm">Hiberante缓存</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E8%AF%A2%E7%BC%93%E5%AD%98/1.htm">查询缓存</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BA%A7%E7%BC%93%E5%AD%98/1.htm">二级缓存</a>
                                    <div>Hibernate中的缓存 
  
一、Hiberante中常见的三大缓存:一级缓存,二级缓存和查询缓存。 
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存是由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存</div>
                                </li>
                                <li><a href="/article/3326.htm"
                                       title="对象关系行为模式之延迟加载" target="_blank">对象关系行为模式之延迟加载</a>
                                    <span class="text-muted">home198979</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%BB%B6%E8%BF%9F%E5%8A%A0%E8%BD%BD/1.htm">延迟加载</a>
                                    <div>形象化设计模式实战     HELLO!架构 
  
一、概念 
Lazy Load:一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。 
延迟加载貌似很简单,就是在数据需要时再从数据库获取,减少数据库的消耗。但这其中还是有不少技巧的。 
  
  
二、实现延迟加载 
实现Lazy Load主要有四种方法:延迟初始化、虚</div>
                                </li>
                                <li><a href="/article/3453.htm"
                                       title="xml 验证" target="_blank">xml 验证</a>
                                    <span class="text-muted">pengfeicao521</span>
<a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/xml%E8%A7%A3%E6%9E%90/1.htm">xml解析</a>
                                    <div>有些字符,xml不能识别,用jdom或者dom4j解析的时候就报错 
 
public static void testPattern() { 
 
 // 含有非法字符的串 
 String str =       "Jamey&#52828;&#01;&#02;&#209;&#1282</div>
                                </li>
                                <li><a href="/article/3580.htm"
                                       title="div设置半透明效果" target="_blank">div设置半透明效果</a>
                                    <span class="text-muted">spjich</span>
<a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%8D%8A%E9%80%8F%E6%98%8E/1.htm">半透明</a>
                                    <div>为div设置如下样式: 
  
div{filter:alpha(Opacity=80);-moz-opacity:0.5;opacity: 0.5;}  
  
  
  
 说明: 
1、filter:对win IE设置半透明滤镜效果,filter:alpha(Opacity=80)代表该对象80%半透明,火狐浏览器不认2、-moz-opaci</div>
                                </li>
                                <li><a href="/article/3707.htm"
                                       title="你真的了解单例模式么?" target="_blank">你真的了解单例模式么?</a>
                                    <span class="text-muted">w574240966</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a>
                                    <div>    单例模式,很多初学者认为单例模式很简单,并且认为自己已经掌握了这种设计模式。但事实上,你真的了解单例模式了么。 
  
一,单例模式的5中写法。(回字的四种写法,哈哈。) 
    1,懒汉式 
          (1)线程不安全的懒汉式 
    public cla</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>