正则表达式表格(正则表达式 Excel)
excel中使用正则表达式
Function?JiSuan(Rng?As?Range)?As?Single
????Dim?Reg?As?New?RegExp
????Dim?R?As?String
????On?Error?GoTo?ErrHand
????R?=?(Rng)
????Reg.Global?=?True
????Reg.Pattern?=?"[\u4e00-\u9fa5]|m|M"
????R?=?Reg.Replace(R,?"")
????Reg.Pattern?=?"×"
????R?=?Reg.Replace(R,?"*")
????RegSZCC?R
????RegSZJJ?R
????JiSuan?=?Round(CSng(R),?4)
????Set?Reg?=?Nothing
????Exit?Function
ErrHand:
????JiSuan?=?Err.Description
End?Function
Sub?RegSZCC(ByRef?S?As?String)
????Dim?Reg?As?New?RegExp
????Dim?MS
????Dim?R?As?String
????Reg.Pattern?=?"(\d+\.{0,1}\d*)(\*|\\)(\d+\.{0,1}\d*)"
????Set?MS?=?Reg.Execute(S)
????If?MS.Count?=?1?Then
????????If?MS(0).SubMatches(1)?=?"\"?Then
????????????R?=?Format(CSng(MS(0).SubMatches(0))?/?CSng(MS(0).SubMatches(2)),?"0.00000")
????????Else
????????????R?=?Format(CSng(MS(0).SubMatches(0))?*?CSng(MS(0).SubMatches(2)),?"0.00000")
????????End?If
????????S?=?Reg.Replace(S,?R)
????????RegSZCC?S
????End?If
End?Sub
Sub?RegSZJJ(ByRef?S?As?String)
????Dim?Reg?As?New?RegExp
????Dim?MS
????Dim?R?As?String
????Reg.Pattern?=?"(\d+\.{0,1}\d*)(\+|\-)(\d+\.{0,1}\d*)"
????Set?MS?=?Reg.Execute(S)
????If?MS.Count?=?1?Then
????????If?MS(0).SubMatches(1)?=?"+"?Then
????????????R?=?Format(CSng(MS(0).SubMatches(0))?+?CSng(MS(0).SubMatches(2)),?"0.00000")
????????Else
????????????R?=?Format(CSng(MS(0).SubMatches(0))?-?CSng(MS(0).SubMatches(2)),?"0.00000")
????????End?If
????????S?=?Reg.Replace(S,?R)
????????RegSZJJ?S
????End?If
End?Sub
EXCEL中调用方法
B1=jisuan(A1)
使用正则表达式提取网页中的表格信息
由于不会弄程序只会正则表达式因此只能给你提供一下正则表达式了,不过你会程序,这个问题就会变得很简单了。我将所有的东西用正则表达式匹配出来,你输出之后用程序做个替换就可以实现你要的那种效果了。
正则:tr style="display:" id="tr\d+"[^]*?\s*td([^]*?)/td[\s\S]+?tr align="center" [\s\S]+?tr align="center" \s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td\s*td[^]*?(?:a href="#" title="[^"]*?"font color="#\w+"|)([\s\S]*?)(?:/font/a|)/td
图片:
从图片里面不难看出,将所有的项都匹配出来了。之后你按照顺序输出捕获组1-11就是你要的那些结果,在输出的时候可以按照你需要的格式来进行输出。
输出完成之后做一个替换就可以了如果是nbsp;替换成没有课,如果是小黑点,替换成有课,就OK了。
正则表达式怎么在EXCEL使用
工具/材料:Microsoft Office Excel2016版,Excel表格。
1、首先选中Excel表格,双击打开。
2、然后在该界面中,选中要使用正则表达式的单元格。
3、再者在该界面中,公式栏中输入正则表达式的公式“=RegexString(A1,"([\d]+)",1)”。
4、其次在该界面中,单元格里显示正则表达式结果。
5、继续在该界面中,选中单元格,向下拖动。
6、最后在该界面中,成功显示正则表达式结果。