1.æ°å»ºä¸ä¸ªç©ºç½å·¥ä½ç°¿ï¼å¨å·¥ä½è¡¨çé¢æä¸ç»åå¿«æ·é®Alt+F11æè å³é®åå»ä»»æä¸ä¸ªå·¥ä½è¡¨æ ç¾ï¼å¨å¼¹åºçå³é®å¿«æ·èååå»âæ¥ç代ç âè¿å ¥VBAç¼è¾ç¯å¢ï¼å¦ä¸å¾æ示ï¼
2.å¨â代ç çªå£âä¸å¤å¶ç²è´´ä»¥ä¸ä»£ç ï¼
Sub RegTest()
'å®ä¹æ£å表达å¼å¯¹è±¡
Dim oRegExp As Object
'å®ä¹å¹é å符串éå对象
Dim oMatches As Object
'å建æ£å表达å¼
'å®ä¹è¦æ§è¡æ£åæ¥æ¾çææ¬åé
Dim sText As String
sText = "è¿æ¯vä¸ä¸ªæ£å表达å¼bçèä¾ç¨åºa代ç "
Set oRegExp = CreateObject("vbscript.regexp")
With oRegExp
'设置æ¯å¦å¹é ææç符å项ï¼True表示å¹é ææ, Falseè¡¨ç¤ºä» å¹é 第ä¸ä¸ªç¬¦å项
.Global = True
'设置æ¯å¦åºå大å°åï¼True表示ä¸åºå大å°å, False表示åºå大å°å
.IgnoreCase = True
'设置è¦æ¥æ¾çå符模å¼
.Pattern = "[\u4e00-\u9fa5]+"
'å¤ææ¯å¦å¯ä»¥æ¾å°å¹é çå符ï¼è¥å¯ä»¥åè¿åTrue
MsgBox .Test(sText)
'对å符串æ§è¡æ£åæ¥æ¾ï¼è¿åææçæ¥æ¾å¼çéåï¼è¥æªæ¾å°ï¼å为空
Set oMatches = .Execute(sText)
'æå符串ä¸ç¨æ£åæ¾å°çææå¹é å符æ¿æ¢ä¸ºå ¶å®å符
MsgBox .Replace(sText, "")
End With
Set oRegExp = Nothing
Set oMatches = Nothing
End Sub
å¦ä¸å¾æ示:
3.æ§è¡ä»¥ä¸ä»£ç ï¼å°æ sText = "è¿æ¯vä¸ä¸ªæ£å表达å¼bçèä¾ç¨åºa代ç " åéä¸çä¸æåç¬¦å ¨é¨å é¤ï¼å°åªè¿å"vba"3个è±æå符ï¼å¦ä¸å¾æ示ãå ¶ä¸ç.Pattern = "[\u4e00-\u9fa5]+"表示å¹é ææä¸æå符ï¼Patternå±æ§æ¯æ£å表达å¼å¯¹è±¡çæ ¸å¿ï¼å½éè¦æ§è¡å ¶å®æ¥æ¾æ¿æ¢æ¶ä¸è¬é½åªéæ´æ¹Patternå±æ§å³å¯ã
4.ä¸äºå¸¸è§çæ£åPatternå¦ä¸ï¼
[0-9]表示å¹é ä»»æä¸ä¸ªæ°å
[a-zA-Z]表示å¹é ä»»æä¸ä¸ªè±æåæ¯
[\u4e00-\u9fa5]表示å¹é ä»»æä¸ä¸ªä¸æå符ã
不需要使用vba,直接用这个,即可用正则式抽取Excel中的特殊字符,操作如下:
工具地址:www.excelfb.com 点击: (按正则式)拆分一列(单元格)为多列(提取单元格数字等)
写入相应的正则式即可