正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能不一样,不过只要学会了任意一门语言的正则表达式用法,其他语言中大部分也只是换了个函数的名称而已,本质都是一样的。
示例字符串:
Bash
百度一下,你就知道
<body>
<div class='c-tips-container' id='c-tips-container'></div>
<script>
var s_session={
"logId":"3614294667",
"seqId":"3614294907",
"sessionId":"",
"debug":false,
"userTips":"{}",
"curmod":"2",
"firstmod":"",
"logoCode":false,
"isFesLogo":false,
"sid":"36454_34813_36422_36166_36488_36055_36419_26350_36299_36468_36315_36447",
"mSid":"",
"sample_value":"",
"isLogin":false,
"agingVoice": "",
"卡卡": "632232258",
"Will": "1052949192",
"Phone": "18874922908"
};
window.__async_strategy = 2;
</script>
</body>
</html></code></pre><p data-track='5' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='6'>正则表达式基本语法</h1><h1 class='pgc-h-arrow-right' data-track='7'>() :成对的小括号( )用来定义操作符的范围和优先度</h1><h1 class='pgc-h-arrow-right' data-track='8'>+ :加号代表前面的字符必须至少出现一次(一次或多次)</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.findall('((<+)body>)',s)
print(res)
# 输出:[('<body>', '<')] body>必须出现异常<</code></pre><p data-track='10' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='11'>? :问号代表前面的字符最多只可以出现一次(零次或一次)</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.findall('((<?)body>)',s)
print(res)
# 输出:[('<body>', '<'), body>', '')]
# body>前面可以不出现<</code></pre><p data-track='13' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='14'>* :星号代表前面的字符可以不出现,也可以出现一次或者多次(零次、一次或多次)</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.findall('((<*)body>)',s)
print(res)
# 输出:[('<body>', '<'), body>', '')]
# body>前面可以不出现<,示例没有多个,所以表现为何问号一样</code></pre><p data-track='16' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='17'>| :竖线|表示选择,具有最低优先级</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.findall('<body>|<html>',s)
print(res)
# 输出:['<html>', '<body>']
# 匹配<body>或者<html></code></pre><p data-track='19' class='syl-page-br' style><br></p><div class='tableWrapper'><div class='syl-table-wrap'><table style='min-width: 112px;'><colgroup><col><col></colgroup><tbody><tr><td><p data-track='20'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>元字符</span></p></td><td><p data-track='21'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>描述</span></p></td></tr><tr><td><p data-track='22' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>\</span></p></td><td><p data-track='23'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。</span></p></td></tr><tr><td><p data-track='24' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>^</span></p></td><td><p data-track='25'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>匹配输入字行首。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。</span></p></td></tr><tr><td><p data-track='26' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>$</span></p></td><td><p data-track='27'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>匹配输入行尾。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。</span></p></td></tr><tr><td><p data-track='28' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>*</span></p></td><td><p data-track='29'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>匹配前面的子表达式任意次。例如,zo*能匹配“z”,也能匹配“zo”以及“zoo”。*等价于{0,}。</span></p></td></tr><tr><td><p data-track='30' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>+</span></p></td><td><p data-track='31'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>匹配前面的子表达式一次或多次(大于等于1次)。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。</span></p></td></tr><tr><td><p data-track='32' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>?</span></p></td><td><p data-track='33'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“do”或“does”。?等价于{0,1}。</span></p></td></tr><tr><td><p data-track='34' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>{</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>}</span></p></td><td><p data-track='35'><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>是一个非负整数。匹配确定的</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>次。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。</span></p></td></tr><tr><td><p data-track='36' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>{</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>,}</span></p></td><td><p data-track='37'><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>是一个非负整数。至少匹配</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>次。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。</span></p></td></tr><tr><td><p data-track='38' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>{</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>,</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>m</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>}</span></p></td><td><p data-track='39'><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>m</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>和</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>均为非负整数,其中</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'><=</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>m</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>。最少匹配</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>次且最多匹配</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>m</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>次。例如,“o{1,3}”将匹配“fooooood”中的前三个o为一组,后三个o为一组。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。</span></p></td></tr><tr><td><p data-track='40' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>?</span></p></td><td><p data-track='41'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>当该字符紧跟在任何一个其他限制符(*,+,?,{</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>},{</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>,},{</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>n</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>,</span><em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>m</span></em><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少地匹配所搜索的字符串,而默认的贪婪模式则尽可能多地匹配所搜索的字符串。例如,对于字符串“oooo”,“o+”将尽可能多地匹配“o”,得到结果[“oooo”],而“o+?”将尽可能少地匹配“o”,得到结果 ['o', 'o', 'o', 'o']</span></p></td></tr><tr><td><p data-track='42'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>.点</span></p></td><td><p data-track='43'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>匹配除“\n”和"\r"之外的任何单个字符。要匹配包括“\n”和"\r"在内的任何字符,请使用像“[\s\S]”的模式。</span></p></td></tr><tr><td><p data-track='44' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>[xyz]</span></p></td><td><p data-track='45'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。</span></p></td></tr><tr><td><p data-track='46' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>[^xyz]</span></p></td><td><p data-track='47'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”任一字符。</span></p></td></tr><tr><td><p data-track='48' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>[a-z]</span></p></td><td><p data-track='49'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。</span></p><p data-track='50'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>注意:只有连字符在字符组内部时,并且出现在两个字符之间时,才能表示字符的范围; 如果出字符组的开头,则只能表示连字符本身.</span></p></td></tr><tr><td><p data-track='51' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>[^a-z]</span></p></td><td><p data-track='52'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。</span></p></td></tr></tbody></table></div></div><p data-track='53'>更多基础语法可以参考:百度百科</p><p data-track='54' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='55'>Python正则模式</h1><h1 class='pgc-h-arrow-right' data-track='56'>flags参数说明:</h1><div class='tableWrapper'><div class='syl-table-wrap'><table style='min-width: 112px;'><colgroup><col><col></colgroup><tbody><tr><td><p style='text-align: left;' data-track='57'><span style='color: #FFFFFF; --tt-darkmode-color: #FFFFFF;'><span style='background-color: #555555; --tt-darkmode-bgcolor: #555555;'>修饰符</span></span></p></td><td><p style='text-align: left;' data-track='58'><span style='color: #FFFFFF; --tt-darkmode-color: #FFFFFF;'><span style='background-color: #555555; --tt-darkmode-bgcolor: #555555;'>描述</span></span></p></td></tr><tr><td><p data-track='59' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>re.I</span></p></td><td><p data-track='60'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>使匹配对大小写不敏感</span></p></td></tr><tr><td><p data-track='61' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #333333;'><span style='background-color: #F6F4F0; --tt-darkmode-bgcolor: #BFBEBB;'>re.L</span></span></p></td><td><p data-track='62'><span style='color: #333333; --tt-darkmode-color: #333333;'><span style='background-color: #F6F4F0; --tt-darkmode-bgcolor: #BFBEBB;'>做本地化识别(locale-aware)匹配</span></span></p></td></tr><tr><td><p data-track='63' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>re.M</span></p></td><td><p data-track='64'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>多行匹配,影响 ^ 和 $</span></p></td></tr><tr><td><p data-track='65' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #333333;'><span style='background-color: #F6F4F0; --tt-darkmode-bgcolor: #BFBEBB;'>re.S</span></span></p></td><td><p data-track='66'><span style='color: #333333; --tt-darkmode-color: #333333;'><span style='background-color: #F6F4F0; --tt-darkmode-bgcolor: #BFBEBB;'>使 . 匹配包括换行在内的所有字符</span></span></p></td></tr><tr><td><p data-track='67' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>re.U</span></p></td><td><p data-track='68'><span style='color: #333333; --tt-darkmode-color: #A3A3A3;'>根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.</span></p></td></tr><tr><td><p data-track='69' class='syl-line-pure-english'><span style='color: #333333; --tt-darkmode-color: #333333;'><span style='background-color: #F6F4F0; --tt-darkmode-bgcolor: #BFBEBB;'>re.X</span></span></p></td><td><p data-track='70'><span style='color: #333333; --tt-darkmode-color: #333333;'><span style='background-color: #F6F4F0; --tt-darkmode-bgcolor: #BFBEBB;'>该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。</span></span></p></td></tr></tbody></table></div></div><h1 class='pgc-h-arrow-right' data-track='71'>findall(pattern, string, flags=0) :找到并返回所有满足规则的字符串,需要得到匹配出来的数据</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code># 必须是[1-9]数字开头,然后是连续的5到13位数字
res = re.findall('[1-9][0-9]{5,13}',s)
print(res)
# 输出:['291521', '3614294667', '3614294907', '632232258', '1052949192', '18874922908']</code></pre><p style='text-indent:2em' data-track='73' class='syl-page-br'><br></p><h1 class='pgc-h-arrow-right' data-track='74'>search(pattern, string, flags=0) :查找第一次出现的位置</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.search('<html>',s)
print(res)
# 输出:<re.match object span='(1,' 7 match='<html>'></code></pre><p style='text-indent:2em' data-track='76' class='syl-page-br'><br></p><h1 class='pgc-h-arrow-right' data-track='77'>match(pattern, string, flags=0) :尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match() 就返回 none</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.match('<html>',s)
print(res)
# 输出:<re.match object span='(0,' 6 match='<html>'></code></pre><p data-track='79' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='80'>Python正则应用大全</h1><h1 class='pgc-h-arrow-right' data-track='81'>场景1:匹配两个字符串中间的字符</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code># 包含标志字符串
print(re.findall('<title>.*</title>',s))
# 输出:['<title>百度一下,你就知道</title>']
# 不包含标志字符串
print(re.findall('<title>(.*)</title>',s))
# 输出:['百度一下,你就知道']</code></pre><h1 class='pgc-h-arrow-right' data-track='83'>场景2:提取两个字符串中间的字符,且包含换行</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>print(re.findall('<script>.*</script>',s,re.S))</code></pre><h1 class='pgc-h-arrow-right' data-track='85'>场景3:提取json字符串</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.findall('s_session=({.*});',s,re.S)
print(res)
# 输出:['{\n\t\t"logId":"3614294667",\n\t\t"seqId":"3614294907",\n\t\t"sessionId":"",\n\t\t"debug":false,\n\t\t"userTips":"{}",\n\t\t"curmod":"2",\n\t\t"firstmod":"",\n\t\t"logoCode":false,\n\t\t"isFesLogo":false,\n\t\t"sid":"36454_34813_36422_36166_36488_36055_36419_26350_36299_36468_36315_36447",\n\t\t"mSid":"",\n\t\t"sample_value":"",\n\t\t"isLogin":false,\n\t\t"agingVoice": "",\n\t\t"卡卡": "632232258",\n\t\t"Will": "1052949192",\n\t\t"Phone": "18874922908"\n\t}']</code></pre><p data-track='87' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='88'>场景4:去掉字符串中的空字符</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>res = re.findall('s_session=({.*});',s,re.S)
print(re.sub(r'\s{2,}', '', res[0]))
# 输出:{"logId":"3614294667","seqId":"3614294907","sessionId":"","debug":false,"userTips":"{}","curmod":"2","firstmod":"","logoCode":false,"isFesLogo":false,"sid":"36454_34813_36422_36166_36488_36055_36419_26350_36299_36468_36315_36447","mSid":"","sample_value":"","isLogin":false,"agingVoice": "","卡卡": "632232258","Will": "1052949192","Phone": "18874922908"}</code></pre><p data-track='90' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='91'>场景5:提取连续数字</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code># 可以将7改成任意位数
print(re.findall('\d{7}',s,re.S))
# 输出:['3614294', '3614294', '6322322', '1052949', '1887492']</code></pre><p data-track='93' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='94'>场景6:提取QQ号码,【1-9】开头的5位到14位数字</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>print(re.findall('[1-9][0-9]{4,13}',s,re.S))
# 输出:['291521', '3614294667', '3614294907', '36454', '34813', '36422', '36166', '36488', '36055', '36419', '26350', '36299', '36468', '36315', '36447', '632232258', '1052949192', '18874922908']</code></pre><p data-track='96' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='97'>场景7:提取手机号码,[1-9][3-9]开头的11位数字</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>print(re.findall('[1-9][3-9][0-9]{9}',s))
# 输出:['18874922908']</code></pre><p data-track='99' class='syl-page-br' style><br></p><h1 class='pgc-h-arrow-right' data-track='100'>场景8:获取link标签内容(贪心:会一直匹配到最后一个/>)</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>print(re.findall(r'<link . />',s,re.S))
# 输出:['<link rel='shortcut icon' href='\n\t/favicon.ico\n\t' type='image/x-icon' /><link rel='search' type='application/opensearchdescription+xml' href='/content-search.xml\n\t' title='百度搜索' /><link rel='icon' sizes='any' maskhref='//www.baidu.com/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg\n\t'><link rel='dns-prefetch' href='//dss0.bdstatic.com\n\t' /><link rel='dns-prefetch' href='//dss1.bdstatic.com\n\t' /><link rel='dns-prefetch' href='//ss1.bdstatic.com\n\t' /><link rel='dns-prefetch' href='//sp0.baidu.com\n\t' /><link rel='dns-prefetch' href='//sp1.baidu.com\n\t' /><link rel='dns-prefetch' href='//sp2.baidu.com\n\t' />']</code></pre><h1 class='pgc-h-arrow-right' data-track='102'>场景9:获取所有link标签内容(非贪心:匹配到第一个/>后停止)</h1><pre class="prism-highlight prism-language-bash" class='syl-page-code'><code>print(re.findall(r'<link . />',s,re.S))
# 输出:['<link rel='shortcut icon' href='\n\t/favicon.ico\n\t' type='image/x-icon' />', '<link rel='search' type='application/opensearchdescription+xml' href='/content-search.xml\n\t' title='百度搜索' />', '<link rel='icon' sizes='any' maskhref='//www.baidu.com/img/baidu_85beaf5496f291521eb75ba38eacbd87.svg\n\t'><link rel='dns-prefetch' href='//dss0.bdstatic.com\n\t' />', '<link rel='dns-prefetch' href='//dss1.bdstatic.com\n\t' />', '<link rel='dns-prefetch' href='//ss1.bdstatic.com\n\t' />', '<link rel='dns-prefetch' href='//sp0.baidu.com\n\t' />', '<link rel='dns-prefetch' href='//sp1.baidu.com\n\t' />', '<link rel='dns-prefetch' href='//sp2.baidu.com\n\t' />']</code></pre><p data-track='104' class='syl-page-br' style><br></p><p data-track='105'>未完,待续... ...</p><p data-track='3'>希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。</p>
<div class="info-share-box clearfix">
<div class="fl">
<p class="tags"><strong>Tags:</strong><a href="http://www.qiguaw.com/tags-685.html" title="查看更多有关于“msxml 4 0 sp2是什么”的内容" rel="tag" target="_blank">msxml 4 0 sp2是什么</a></p>
</div>
<div class="fr">
<div class="info-share">
<div class="social-share" data-initialized="true">
<a href="#" class="social-share-icon iconfont icon-weibo"></a>
<a href="#" class="social-share-icon iconfont icon-qq"></a>
<a href="#" class="social-share-icon iconfont icon-wechat"></a>
<a href="#" class="social-share-icon iconfont icon-qzone"></a>
</div>
</div>
<script src="http://www.qiguaw.com/zb_users/theme/txcms2/script/social-share.min.js"></script>
</div>
</div>
</div>
<div class="sx mb15">
<ul>
<li class="fl">上一篇: <a href="http://www.qiguaw.com/post/15155.html" title="天鬼指示器 V2.0 WA代码(天鬼没了提示切红脸的wa)">天鬼指示器 V2.0 WA代码(天鬼没了提示切红脸的wa)</a>
</li>
<li class="fr ziyou">下一篇: <a href="http://www.qiguaw.com/post/15157.html" title="在PS里如何安装字体(怎样在ps上安装字体并使用)">在PS里如何安装字体(怎样在ps上安装字体并使用)</a>
</li>
<div class="clear"></div>
</ul>
</div>
<div class="xg">
<h2 class="ybbt">猜你喜欢</h2>
<ul>
<li><span class="">2025-03-19</span><i class="fa fa-caret-right"></i> <a href="http://www.qiguaw.com/post/15155.html" title="天鬼指示器 V2.0 WA代码(天鬼没了提示切红脸的wa)">天鬼指示器 V2.0 WA代码(天鬼没了提示切红脸的wa)</a></li>
<li><span class="">2025-03-19</span><i class="fa fa-caret-right"></i> <a href="http://www.qiguaw.com/post/15154.html" title="IE浏览器正式退役,带你一次看完1.0-11.0全版本IE浏览器">IE浏览器正式退役,带你一次看完1.0-11.0全版本IE浏览器</a></li>
<li><span class="">2025-03-19</span><i class="fa fa-caret-right"></i> <a href="http://www.qiguaw.com/post/15153.html" title="你问我答 灭bug“瘟10”变Win10(bug是什么意思)">你问我答 灭bug“瘟10”变Win10(bug是什么意思)</a></li>
</ul>
</div>
</div>
<div id="comment" class="bgb pd15">
<div class="tx-comments">
<h4>本文暂时没有评论,来添加一个吧(●'◡'●)</h4>
<label id="AjaxCommentBegin"></label>
<!--评论输出-->
<label id="AjaxCommentEnd"></label>
</div>
<!--评论框-->
<div class="post tx-comment" id="divCommentPost">
<h3><a href="javascript:;" id="cancel-reply" style="display:none;float:right;"><small>取消回复</small></a>欢迎 <span class="tx-red">你</span> 发表评论:</h3>
<form id="frmSumbit" target="_self" method="post" action="http://www.qiguaw.com/zb_system/cmd.php?act=cmt&postid=15156&key=c5175006831c795c70a5930a9e00da01" class="clearfix">
<input type="hidden" name="inpId" id="inpId" value="15156">
<input type="hidden" name="inpRevID" id="inpRevID" value="0">
<div class="tx-comment-box tx-comment-ul3"><input type="text" name="inpName" id="inpName" class="text" value="访客" tabindex="1" placeholder="名称(*)"> </div>
<div class="tx-comment-box tx-comment-textarea">
<textarea name="txaArticle" id="txaArticle" class="text" cols="50" rows="4" tabindex="5" placeholder="欢迎在这里交流评论,但是垃圾评论不受欢迎!"></textarea>
<input name="sumbit" type="submit" tabindex="6" value="提交" onclick="return zbp.comment.post()" class="button">
</div>
</form>
</div>
</div>
</div>
<div class="right fr sjwu">
<dl class="wupd">
<div class="notice">
<div class="tab-hd">
<ul class="tab-nav">
<li class="on"><a href="javascript:;">最新文章</a></li>
<li><a href="javascript:;">热门文章</a></li>
<li><a href="javascript:;" class="wux">推荐文章</a></li>
</ul>
</div>
<div class="tab-bd">
<div class="tab-pal" style="display:block">
<ul>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15629.html" title="excel怎样把15位身份证号快速变成18位?" target="_blank">excel怎样把15位身份证号快速变成18位?</a></li>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15628.html" title="Excel函数实战:快速准确提取身份证出生年月与性别" target="_blank">Excel函数实战:快速准确提取身份证出生年月与性别</a></li>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15627.html" title="一个身份证号,生日、年龄、性别、籍贯、退休时间都有了" target="_blank">一个身份证号,生日、年龄、性别、籍贯、退休时间都有了</a></li>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15626.html" title="EXCEL身份证号提取出生日期及年龄" target="_blank">EXCEL身份证号提取出生日期及年龄</a></li>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15625.html" title="“我改名了!”“身份证号也跟着改了?”" target="_blank">“我改名了!”“身份证号也跟着改了?”</a></li>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15624.html" title="用好你的WPS(四)极简单身份证号的信息提取-性别篇" target="_blank">用好你的WPS(四)极简单身份证号的信息提取-性别篇</a></li>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15623.html" title="从身份证号提取年龄,我不会,同事给我分享了三种方法" target="_blank">从身份证号提取年龄,我不会,同事给我分享了三种方法</a></li>
<li><span class="fr zuo10">04-11</span><a href="http://www.qiguaw.com/post/15622.html" title="用一个公式从身份证号中提取年龄(从身份证号里面提取年龄公式)" target="_blank">用一个公式从身份证号中提取年龄(从身份证号里面提取年龄公式)</a></li>
</ul>
</div>
<div class="tab-pal">
<ul>
<li><span class="fr zuo10">840℃</span><a href="http://www.qiguaw.com/post/13399.html" title="药片上的压印缩写啥意思?" target="_blank">药片上的压印缩写啥意思?</a></li>
<li><span class="fr zuo10">707℃</span><a href="http://www.qiguaw.com/post/8445.html" title="一段代码各大VIP视频免费看(看vip电影代码)" target="_blank">一段代码各大VIP视频免费看(看vip电影代码)</a></li>
<li><span class="fr zuo10">555℃</span><a href="http://www.qiguaw.com/post/406.html" title="免费下载百度文库里的付费文档,两种方法,亲测有效。" target="_blank">免费下载百度文库里的付费文档,两种方法,亲测有效。</a></li>
<li><span class="fr zuo10">500℃</span><a href="http://www.qiguaw.com/post/9402.html" title="微信隐藏功能,不添加好友也可以聊天" target="_blank">微信隐藏功能,不添加好友也可以聊天</a></li>
<li><span class="fr zuo10">409℃</span><a href="http://www.qiguaw.com/post/4889.html" title="Illustrator基础教程02:谈谈AI文件保存的几种格式" target="_blank">Illustrator基础教程02:谈谈AI文件保存的几种格式</a></li>
<li><span class="fr zuo10">392℃</span><a href="http://www.qiguaw.com/post/4905.html" title="AI零基础入门教程:Illustrator 2024基本操作—关闭文件" target="_blank">AI零基础入门教程:Illustrator 2024基本操作—关闭文件</a></li>
<li><span class="fr zuo10">386℃</span><a href="http://www.qiguaw.com/post/76.html" title="光猫里面每个通道含义全解(光猫各个接口)" target="_blank">光猫里面每个通道含义全解(光猫各个接口)</a></li>
<li><span class="fr zuo10">379℃</span><a href="http://www.qiguaw.com/post/6659.html" title="遇到网页上的文章不能复制,别再注册登录了,这串代码1秒破解" target="_blank">遇到网页上的文章不能复制,别再注册登录了,这串代码1秒破解</a></li>
</ul>
</div>
<div class="tab-pal">
<ul>
<li><span class="fr zuo10">180℃</span><a href="http://www.qiguaw.com/post/9.html" title="把宇宙字体搬到屏幕:如何用 TTF 自定义你的 Jetpack Compose 字体" target="_blank">把宇宙字体搬到屏幕:如何用 TTF 自定义你的 Jetpack Compose 字体</a></li>
<li><span class="fr zuo10">288℃</span><a href="http://www.qiguaw.com/post/5.html" title="Docker三剑客之Compose(docker-compose)" target="_blank">Docker三剑客之Compose(docker-compose)</a></li>
<li><span class="fr zuo10">296℃</span><a href="http://www.qiguaw.com/post/7.html" title="干货贴 | 5 种常见的 Docker Compose 错误" target="_blank">干货贴 | 5 种常见的 Docker Compose 错误</a></li>
</ul>
</div>
</div>
</div>
</dl>
<dl class="function" id="divPrevious">
<dt class="function_t">最近发表</dt><dd class="function_c">
<ul><li><a title="excel怎样把15位身份证号快速变成18位?" href="http://www.qiguaw.com/post/15629.html">excel怎样把15位身份证号快速变成18位?</a></li>
<li><a title="Excel函数实战:快速准确提取身份证出生年月与性别" href="http://www.qiguaw.com/post/15628.html">Excel函数实战:快速准确提取身份证出生年月与性别</a></li>
<li><a title="一个身份证号,生日、年龄、性别、籍贯、退休时间都有了" href="http://www.qiguaw.com/post/15627.html">一个身份证号,生日、年龄、性别、籍贯、退休时间都有了</a></li>
<li><a title="EXCEL身份证号提取出生日期及年龄" href="http://www.qiguaw.com/post/15626.html">EXCEL身份证号提取出生日期及年龄</a></li>
<li><a title="“我改名了!”“身份证号也跟着改了?”" href="http://www.qiguaw.com/post/15625.html">“我改名了!”“身份证号也跟着改了?”</a></li>
<li><a title="用好你的WPS(四)极简单身份证号的信息提取-性别篇" href="http://www.qiguaw.com/post/15624.html">用好你的WPS(四)极简单身份证号的信息提取-性别篇</a></li>
<li><a title="从身份证号提取年龄,我不会,同事给我分享了三种方法" href="http://www.qiguaw.com/post/15623.html">从身份证号提取年龄,我不会,同事给我分享了三种方法</a></li>
<li><a title="用一个公式从身份证号中提取年龄(从身份证号里面提取年龄公式)" href="http://www.qiguaw.com/post/15622.html">用一个公式从身份证号中提取年龄(从身份证号里面提取年龄公式)</a></li>
<li><a title="效率飙升:从身份证号码提取年龄、生肖及退休日期的6个高效公式" href="http://www.qiguaw.com/post/15621.html">效率飙升:从身份证号码提取年龄、生肖及退休日期的6个高效公式</a></li>
<li><a title="我来教你如何倒推15位身份证号码(身份证号倒出生年月日)" href="http://www.qiguaw.com/post/15620.html">我来教你如何倒推15位身份证号码(身份证号倒出生年月日)</a></li>
</ul>
</dd>
</dl>
<dl class="function" id="divTags">
<dt class="function_t">标签列表</dt><dd class="function_c">
<ul><li><a title="电脑显示器花屏" href="http://www.qiguaw.com/tags-93.html">电脑显示器花屏<span class="tag-count"> (79)</span></a></li>
<li><a title="403 forbidden" href="http://www.qiguaw.com/tags-94.html">403 forbidden<span class="tag-count"> (65)</span></a></li>
<li><a title="linux怎么查看系统版本" href="http://www.qiguaw.com/tags-95.html">linux怎么查看系统版本<span class="tag-count"> (54)</span></a></li>
<li><a title="补码运算" href="http://www.qiguaw.com/tags-103.html">补码运算<span class="tag-count"> (63)</span></a></li>
<li><a title="缓存服务器" href="http://www.qiguaw.com/tags-105.html">缓存服务器<span class="tag-count"> (61)</span></a></li>
<li><a title="定时重启" href="http://www.qiguaw.com/tags-106.html">定时重启<span class="tag-count"> (59)</span></a></li>
<li><a title="plsql developer" href="http://www.qiguaw.com/tags-109.html">plsql developer<span class="tag-count"> (73)</span></a></li>
<li><a title="对话框打开时命令无法执行" href="http://www.qiguaw.com/tags-116.html">对话框打开时命令无法执行<span class="tag-count"> (61)</span></a></li>
<li><a title="excel数据透视表" href="http://www.qiguaw.com/tags-127.html">excel数据透视表<span class="tag-count"> (72)</span></a></li>
<li><a title="oracle认证" href="http://www.qiguaw.com/tags-319.html">oracle认证<span class="tag-count"> (56)</span></a></li>
<li><a title="网页不能复制" href="http://www.qiguaw.com/tags-323.html">网页不能复制<span class="tag-count"> (84)</span></a></li>
<li><a title="photoshop外挂滤镜" href="http://www.qiguaw.com/tags-326.html">photoshop外挂滤镜<span class="tag-count"> (58)</span></a></li>
<li><a title="网页无法复制粘贴" href="http://www.qiguaw.com/tags-334.html">网页无法复制粘贴<span class="tag-count"> (55)</span></a></li>
<li><a title="vmware workstation 7 1 3" href="http://www.qiguaw.com/tags-345.html">vmware workstation 7 1 3<span class="tag-count"> (78)</span></a></li>
<li><a title="jdk 64位下载" href="http://www.qiguaw.com/tags-366.html">jdk 64位下载<span class="tag-count"> (65)</span></a></li>
<li><a title="phpstudy 2013" href="http://www.qiguaw.com/tags-367.html">phpstudy 2013<span class="tag-count"> (66)</span></a></li>
<li><a title="卡通形象生成" href="http://www.qiguaw.com/tags-378.html">卡通形象生成<span class="tag-count"> (55)</span></a></li>
<li><a title="psd模板免费下载" href="http://www.qiguaw.com/tags-379.html">psd模板免费下载<span class="tag-count"> (67)</span></a></li>
<li><a title="shift" href="http://www.qiguaw.com/tags-383.html">shift<span class="tag-count"> (58)</span></a></li>
<li><a title="localhost打不开" href="http://www.qiguaw.com/tags-396.html">localhost打不开<span class="tag-count"> (58)</span></a></li>
<li><a title="检测代理服务器设置" href="http://www.qiguaw.com/tags-398.html">检测代理服务器设置<span class="tag-count"> (55)</span></a></li>
<li><a title="frequency" href="http://www.qiguaw.com/tags-436.html">frequency<span class="tag-count"> (66)</span></a></li>
<li><a title="indesign教程" href="http://www.qiguaw.com/tags-443.html">indesign教程<span class="tag-count"> (55)</span></a></li>
<li><a title="运行命令大全" href="http://www.qiguaw.com/tags-485.html">运行命令大全<span class="tag-count"> (61)</span></a></li>
<li><a title="ping exe" href="http://www.qiguaw.com/tags-523.html">ping exe<span class="tag-count"> (64)</span></a></li>
</ul>
</dd>
</dl> </div>
<div class="clear"></div>
</div>
<div class="footer">
<div class="zh">
<a href="https://beian.miit.gov.cn/" target="_blank">赣ICP备2024033060号-8</a> </div>
</div>
<div class="fixed-right">
<a href="javascript:;" class="gotop bgb" title="回到顶部"><i class="fa fa-chevron-up"></i></a>
</div>
<script src="http://www.qiguaw.com/zb_users/theme/txcms2/script/txcstx.min.js?v=2024-07-12"></script>
</body>
</html><!--277.44 ms , 19 queries , 3266kb memory , 0 error-->