python re正则表达式模块(Regular Expression)
admin
2023-07-31 02:06:30
0

模块的的作用主要是用于字符串和文本处理,查找,搜索,替换等

复习一下基本的正则表达式吧

 .:匹配除了换行符以为的任意单个字符

 *:匹配任意字符,一个,零个,多个都能匹配得到 俗称贪婪模式

+:匹配位于+之前的一个或者多个字符

 |:匹配位于|之前或者之后的字符

 ^:匹配行首

 $:匹配行尾

 ?:匹配位于?之前的零个或者一个字符,不匹配多个字符

 \\:表示 \\ 之后的为转义字符

 []:匹配[]之中的任意单个字符,[0-9]表示匹配0到9任意一个数字

 ():将位于()之内的的内容当作一个整体

 {}:按{}中的次数进行匹配,100[0-9]{3}表示在100之后任意匹配一个3位数(100-999)

python中以\\开头的元字符:

特殊序列符号 意义
\\A 只在字符串开始进行匹配
\\Z 只在字符串结尾进行匹配
\\b 匹配位于开始或结尾的空字符串
\\B 匹配不位于开始或结尾的空字符串
\\d 相当于[0-9]
\\D 相当于[^0-9]
\\s 匹配任意空白字符:[\\t\\n\\r\\r\\v]
\\S 匹配任意非空白字符:[^\\t\\n\\r\\r\\v]
\\w 匹配任意数字和字母:[a-zA-Z0-9]
\\W 匹配任意非数字和字母:[^a-zA-Z0-9]


正则表达式语法表

语法 意义 说明
\”.\” 任意字符
\”^\” 字符串开始 \’^hello\’匹配\’helloworld\’而不匹配\’aaaahellobbb\’
\”$\” 字符串结尾 与上同理
\”*\”  0 个或多个字符(贪婪匹配) <*>匹配chinaunix
\”+\” 1 个或多个字符(贪婪匹配 与上同理
\”?\” 0 个或多个字符(贪婪匹配 与上同理
*?,+?,?? 以上三个取第一个匹配结果(非贪婪匹配 <*>匹配</span> </td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">{m,n}</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">对于前一个字符重复m到n次,{m}亦可</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">a{6}匹配6个a、a{2,4</span><span style="font-size: 14px">}匹配2到4个a</span></td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">{m,n}?</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">对于前一个字符重复m到n次,并取尽可能少</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">‘aaaaaa</span><span style="font-size: 14px">\’中a{2,4}只会匹配2个</span></td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">\”\\\\\”</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">特殊字符转义或者特殊序列</span></td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> </td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">[]</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">表示一个字符集</span></td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">[0-9]、[a-z</span><span style="font-size: 14px">]、[A-Z</span><span style="font-size: 14px">]、[^0]</span></td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">\”|\”</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">或</span></td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">A|B,或运算</span></td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">(…)</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">匹配括号中任意表达式</span></td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> </td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">(?#…)</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">注释,可忽略</span></td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> </td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">(?=…)</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">Matches if … matches next, but doesn\’t consume the string.</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">\'(?=test)\’  </span><span style="font-size: 14px">在hellotest中匹配hello</span></td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">(?!…)</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">Matches if … doesn\’t match next.</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">\'(?!=test)\’</span><span style="font-size: 14px"><span class="Apple-converted-space"> </span> </span><span style="font-size: 14px">若hello后面不为test,匹配hello</span> </td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">(?<=…) </span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">Matches if preceded by … (must be fixed length).</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span><span style="font-size: 14px">\'(?<=hello</span><span style="font-size: 14px">)test\’  </span></span><span style="font-size: 14px">在hellotest中匹配test</span> </td> </tr> <tr> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">(?<!…)</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">Matches if not preceded by … (must be fixed length).</span> </td> <td style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="font-size: 14px">\'(?<!hello)</span><span style="font-size: 14px">test\’  在hellotest中不匹配test</span> </td> </tr> </tbody> </table> <p><br class="Apple-interchange-newline" /></p> <p>匹配的标志和含义</p> </p> <table align="left" border="8" style="border-bottom: silver 1px solid;text-align: left;border-left: silver 1px solid;padding-bottom: 0px;text-transform: none;text-indent: 0px;margin: 0px;padding-left: 0px;border-spacing: 0px;width: 320px;padding-right: 0px;border-collapse: collapse;font: 14px/21px Verdana, Arial, Helvetica, sans-serif;letter-spacing: normal;height: 141px;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 0px"> <tbody style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <tr style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><strong style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 12px;padding-top: 0px">标志</span></strong></td> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><strong style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 12px;padding-top: 0px">含义</span></strong></td> </tr> <tr style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">re.I</span></td> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">忽略大小写</span></td> </tr> <tr style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">re.L</span></td> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">根据本地设置而更改\\w,\\W,\\b,\\B,\\s,\\S的匹配内容</span></td> </tr> <tr style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">re.M</span></td> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">多行匹配模式</span></td> </tr> <tr style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">re.S</span></td> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">使“.”元字符匹配换行符</span></td> </tr> <tr style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">re.U</span></td> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">匹配Unicode字符</span></td> </tr> <tr style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;padding-top: 0px"> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">re.X</span></td> <td style="border-bottom: silver 1px solid;border-left: silver 1px solid;padding-bottom: 3px;margin: 0px;padding-left: 3px;padding-right: 3px;border-collapse: collapse;border-top: silver 1px solid;border-right: silver 1px solid;padding-top: 3px"><span style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;font-size: 13px;padding-top: 0px">忽略需要匹配模式中的空格,并且可以使用\”#\”号注释</span></td> </tr> </tbody> </table> <p></p> <p>文本内容(提取Linux下的password文件)</p> <pre class="brush:py;"> man:x:6:12:man:/var/cache/man:/bin/nologin </pre> <p>re模块中有3个搜索函数,每个函数都接受3个参数(匹配模式,要匹配的字符串,进行匹配的标志),如果匹配到了就返回一个对象实例,么有就返会None.</p> <p>findall():用于在字符串中查找符合正则表达式的字符串,并返回这些字符串的列表</p> <p>search():搜索整个字符串,返回对象实例</p> <p>match():只从第一个字符开始匹配,后面的不再匹配,返回对象实例</p> <pre class="brush:py;"> lovelinux@LoveLinux:~/py/boke$ cat text man:x:6:12:man:/var/cache/man:/bin/sh lovelinux@LoveLinux:~/py/boke$ cat test.py #/usr/bin/env python #coding:utf-8 import re with open(\'text\',\'r\') as txt: f = txt.read() print re.match(\'bin\',f) print re.search(\'bin\',f).end() lovelinux@LoveLinux:~/py/boke$ python test.py None 34 lovelinux@LoveLinux:~/py/boke$ vim test.py lovelinux@LoveLinux:~/py/boke$ python test.py None <_sre.SRE_Match object at 0x7f12fc9f9ed0> </pre> <p>返回是对象实例有2个方法,</p> <p>start():返回记录匹配到字符的开始索引 </p> <p>end():返回记录匹配到字符的结束索引</p> <pre class="brush:py;"> lovelinux@LoveLinux:~/py/boke$ python test.py None 31 34 lovelinux@LoveLinux:~/py/boke$ cat test.py #/usr/bin/env python #coding:utf-8 import re with open(\'text\',\'r\') as txt: f = txt.read() print re.match(\'bin\',f) print re.search(\'bin\',f).start() print re.search(\'bin\',f).end() </pre></p> <!--end::Text--> </div> <!--end::Description--> <div class="mt-5"> <!--关键词搜索--> <a href="/index.php?s=article&c=search&keyword=python" class="badge badge-light-primary fw-bold my-2" target="_blank">python</a> <a href="/index.php?s=article&c=search&keyword=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F" class="badge badge-light-primary fw-bold my-2" target="_blank">正则表达式</a> <a href="/index.php?s=article&c=search&keyword=re" class="badge badge-light-primary fw-bold my-2" target="_blank">re</a> </div> <div class="mt-5"> <p class="fc-show-prev-next"> <strong>上一篇:</strong><a href="/program/41758.html">Python重新引入被覆盖的自带function</a><br> </p> <p class="fc-show-prev-next"> <strong>下一篇:</strong><a href="/program/41760.html">Web服务器框架 Tornado简介</a> </p> </div> <!--begin::Block--> <div class="d-flex flex-stack mb-2 mt-10"> <!--begin::Title--> <h3 class="text-dark fs-5 fw-bold text-gray-800">相关内容</h3> <!--end::Title--> </div> <div class="separator separator-dashed mb-9"></div> <!--end::Block--> <div class="row g-10"> </div> </div> <!--end::Table widget 14--> </div> <!--end::Col--> <!--begin::Col--> <div class="col-xl-4 mt-0"> <!--begin::Chart Widget 35--> <div class="card card-flush h-md-100"> <!--begin::Header--> <div class="card-header pt-5 "> <!--begin::Title--> <h3 class="card-title align-items-start flex-column"> <!--begin::Statistics--> <div class="d-flex align-items-center mb-2"> <!--begin::Currency--> <span class="fs-5 fw-bold text-gray-800 ">热门资讯</span> <!--end::Currency--> </div> <!--end::Statistics--> </h3> <!--end::Title--> </div> <!--end::Header--> <!--begin::Body--> <div class="card-body pt-3"> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/4386.html" class="text-dark fw-bold text-hover-primary fs-6">Mobi、epub格式电子书如...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/831667.html" class="text-dark fw-bold text-hover-primary fs-6">定时清理删除C:\Progra...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/uploadfile/202403/9fc6c8bf38a85fb.png#没有设置高宽参数,将以原图输出')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/831666.html" class="text-dark fw-bold text-hover-primary fs-6">scoped_dir32_70...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/39278.html" class="text-dark fw-bold text-hover-primary fs-6">500 行 Python 代码...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/783.html" class="text-dark fw-bold text-hover-primary fs-6">小程序支付时提示:appid和...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">[Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/831649.html" class="text-dark fw-bold text-hover-primary fs-6"> pycparser 是一个用...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">`pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/4837.html" class="text-dark fw-bold text-hover-primary fs-6">微信小程序使用slider实现...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/3333.html" class="text-dark fw-bold text-hover-primary fs-6">65536是2的几次方 计算2...</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/831541.html" class="text-dark fw-bold text-hover-primary fs-6">Apache Doris 2....</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...</span> </div> <!--end::Title--> </div> <!--begin::Item--> <div class="d-flex flex-stack mb-7"> <!--begin::Symbol--> <div class="symbol symbol-60px symbol-2by3 me-4"> <div class="symbol-label" style="background-image: url('/static/assets/images/nopic.gif')"></div> </div> <!--end::Symbol--> <!--begin::Title--> <div class="m-0"> <a href="/program/4969.html" class="text-dark fw-bold text-hover-primary fs-6">项目管理和工程管理的区别</a> <span class="text-gray-600 fw-semibold d-block pt-1 fs-7">项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...</span> </div> <!--end::Title--> </div> </div> <!--end::Body--> </div> <!--end::Chart Widget 35--> </div> <!--end::Col--> </div> </div> <!--end::Content container--> </div> <!--end::Content--> </div> <!--end::Content wrapper--> <!--begin::Footer--> <div id="kt_app_footer" class="app-footer"> <!--begin::Footer container--> <div class="app-container container-xxl d-flex flex-column flex-md-row flex-center flex-md-stack py-3"> <!--begin::Copyright--> <div class="text-dark order-2 order-md-1"> <span class="text-muted fw-semibold me-1">2025 ©</span> 晓说杂谈<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f7b4581e1f9f88ac28d46df58a8d3ff5"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <a target="_blank" href="https://beian.miit.gov.cn/">豫ICP备13019747号-13</a> </div> <!--end::Copyright--> <!--begin::Menu--> <ul class="menu menu-gray-600 menu-hover-primary fw-semibold order-1"> <li class="menu-item"> <a href="/tech" target="_blank" class="menu-link px-2">科技分享</a> </li> <li class="menu-item"> <a href="/web" target="_blank" class="menu-link px-2">网络技术</a> </li> <li class="menu-item"> <a href="/hardware" target="_blank" class="menu-link px-2">硬件设备</a> </li> <li class="menu-item"> <a href="/program" target="_blank" class="menu-link px-2">程序人生</a> </li> <li class="menu-item"> <a href="/jinrong" target="_blank" class="menu-link px-2">探索发现</a> </li> <li class="menu-item"> <a href="/jixie" target="_blank" class="menu-link px-2">机械加工</a> </li> <li class="menu-item"> <a href="/dianshang" target="_blank" class="menu-link px-2">电商</a> </li> <li class="menu-item"> <a href="/other" target="_blank" class="menu-link px-2">其他</a> </li> <li class="menu-item"> <a href="/zhishi" target="_blank" class="menu-link px-2">日常知识</a> </li> <li class="menu-item"> <a href="/yulu" target="_blank" class="menu-link px-2">每日语录</a> </li> </ul> <!--end::Menu--> </div> <!--end::Footer container--> </div> <!--end::Footer--> </div> <!--end:::Main--> </div> <!--end::Wrapper--> </div> <!--end::Page--> </div> <!--end::App--> <div id="kt_scrolltop" class="scrolltop" data-kt-scrolltop="true"> <!--begin::Svg Icon | path: icons/duotune/arrows/arr066.svg--> <span class="svg-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <rect opacity="0.5" x="13" y="6" width="13" height="2" rx="1" transform="rotate(90 13 6)" fill="currentColor"></rect> <path d="M12.5657 8.56569L16.75 12.75C17.1642 13.1642 17.8358 13.1642 18.25 12.75C18.6642 12.3358 18.6642 11.6642 18.25 11.25L12.7071 5.70711C12.3166 5.31658 11.6834 5.31658 11.2929 5.70711L5.75 11.25C5.33579 11.6642 5.33579 12.3358 5.75 12.75C6.16421 13.1642 6.83579 13.1642 7.25 12.75L11.4343 8.56569C11.7467 8.25327 12.2533 8.25327 12.5657 8.56569Z" fill="currentColor"></path> </svg> </span> <!--end::Svg Icon--> </div> <!--begin::Javascript--> <script>var hostUrl = "/static/default/pc/";</script> <!--begin::Global Javascript Bundle(mandatory for all pages)--> <script src="/static/default/pc/plugins/global/plugins.bundle.js"></script> <script src="/static/default/pc/js/scripts.bundle.js"></script> <!--end::Global Javascript Bundle--> <!--end::Javascript--> </body> <!--end::Body--> </html>