精华内容
下载资源
问答
  • Excel正则表达式提取

    2020-06-27 21:14:53
    自定义函数-正则表达式: Function TQ(rng, types As String) As String Dim obj As Object Set obj = CreateObject(“VBSCRIPT.REGEXP”) With obj .Global = True Select Case types Case Is = “-hz” '去汉字 ....

    自定义函数-正则表达式:
    Function TQ(rng, types As String) As String
    Dim obj As Object
    Set obj = CreateObject(“VBSCRIPT.REGEXP”)
    With obj
    .Global = True
    Select Case types
    Case Is = “-hz” '去汉字
    .Pattern = “[一-﨩]”
    Case Is = “-zm” '去字母
    .Pattern = “[a-zA-Z]”
    Case Is = “-sz” '去数字
    .Pattern = “[0-9.]”
    Case Is = “+hz” '取汉字
    .Pattern = “[^一-﨩]”
    Case Is = “+zm” '取字母
    .Pattern = “[^a-zA-Z]”
    Case Is = “+sz” '取数字
    .Pattern = “[^0-9.]”
    End Select
    TQ = .Replace(rng, “”)
    End
    WithEnd Function

    展开全文
  • Excel 正则表达式提取

    万次阅读 2017-04-19 22:58:52
    快捷键 Alt +F11 打开代码视图代码:Function GetStr(rng As Range) With CreateObject("VBscript.regexp") .Global = True .Pattern = "\d+\*\d+\+{0,1}\d{0,}" '表达式 If .Execute(rng).Count = 0 Th
    快捷键 Alt +F11 打开代码视图


    代码:
    Function GetStr(rng As Range)
        With CreateObject("VBscript.regexp")
            .Global = True
            .Pattern = "\d+\*\d+\+{0,1}\d{0,}"    '表达式
            If .Execute(rng).Count = 0 Then
                GetStr = ""
            Else
                GetStr = .Execute(rng)(0)
            End If
        End With
    End Function

    函数 GetStr 就编写完成了,使用方法截图如下:
    本例是从源数据中提取字符串

     
     测试数据如下:
    60*112mm, ,胶袋
    无品牌,Kurio X Screen Protector,130*74mm,无保护贴,胶袋
    75*115mm, ,胶袋
    190*255mm, ,装iPad保护贴,胶袋,胶袋
    无品牌,Kurio 7S Screen Protector,193*120mm,无保护贴,胶袋
    180*95mm,平口袋,胶袋
    61*115mm, ,胶袋
    65*120mm, ,胶袋
    135*76mm, ,1308touch5胶袋。,胶袋
    65*130mm, ,胶袋
    143*74(开口方向)mm,胶袋
    120*95mm, ,开口95mm,胶袋
    75*130+25mm, ,胶袋


    展开全文
  • 因此我首先想到了Python里的正则表达式,打算写一个自定义函数去批量提取。然而之前没学VBA里的正则表达式语法,因此就去网上搜了一下,结果发现根本不能运行。几经辗转,总算搞定,因此总结一下,供后来者参考。...

    背景是这样的,我手上有一份统计表,需要将IP地址里的省市提取出来,以便于处理。因此我首先想到了Python里的正则表达式,打算写一个自定义函数去批量提取。然而之前没学VBA里的正则表达式语法,因此就去网上搜了一下,结果发现根本不能运行。几经辗转,总算搞定,因此总结一下,供后来者参考。

    编程目的:实现IP地址中省市信息的提取。

    34af89fd35351dfce9b21935a00709e5.png

    主要涉及的知识点:VBA函数、正则表达式

    代码如下:

    Function 提取省市(rng As Range, name)

    Application.Volatile

    Set regx = CreateObject("vbscript.regexp")

    With regx

    .Global = True

    .Pattern = "[u4e00-u9fa5]+"

    Set mat = .Execute(rng)

    End With

    Select Case name

    Case "省"

    提取省市 = mat.Item(0).Value

    Case "市"

    提取省市 = mat.Item(1).Value

    Case Else

    MsgBox ("输入有误")

    End Select

    End Function

    代码解释:

    1、rng As Range, name:传递两个参数,第一个参数为单元格参数。

    2、Application.Volatile  Set regx = CreateObject("vbscript.regexp"):创建正则表达式对象,固定语法。

    3、With regx

    .Global = True

    .Pattern = "[u4e00-u9fa5]+"

    Set mat = .Execute(rng)

    End With

    Global:表示是否进行全局检索,True表示将所有匹配的结果返回。False则是只返回第一个匹配结果。

    Pattern = "[u4e00-u9fa5]+"就是正则表达式了,其中[u4e00-u9fa5]+表示匹配中文字符串。

    4、Set mat = .Execute(rng):即执行正则表达式。返回一个matchcollection类型的集合,即匹配到的所有结果。

    5、接下来是一个多条件判断语句,相当于If ...Elif... Else...End If 。

    6、提取省市 = mat.Item(0).Value:前面我们提到mat是一个matchcollection类型的集合,mat.Item(0)表示读取第一个匹配结果,Value表示读取它的值。最后将这个值赋给函数。也可以不用后面的value。

    展开全文
  • Excel-VBA正则表达式提取文本案例

    千次阅读 2019-10-02 23:47:44
    因此我首先想到了Python里的正则表达式,打算写一个自定义函数去批量提取。然而之前没学VBA里的正则表达式语法,因此就去网上搜了一下,结果发现根本不能运行。几经辗转,总算搞定,因此总结一下,供后来者参考。 ...

      背景是这样的,我手上有一份统计表,需要将IP地址里的省市提取出来,以便于处理。因此我首先想到了Python里的正则表达式,打算写一个自定义函数去批量提取。然而之前没学VBA里的正则表达式语法,因此就去网上搜了一下,结果发现根本不能运行。几经辗转,总算搞定,因此总结一下,供后来者参考。

      有几点说明:

      1、我是先在 Python中验证了正则表达式再copy到VBA中应用的,结果发现根本不能用。可能VBA跟Python的正则表达式语法还是有点不同的。

      2、还有属性submatches,此处不能写成“提取省市 = mat.Submatches.Item(0)”

      编程目的:实现IP地址中省市信息的提取。    

      

      主要涉及的知识点:VBA函数、正则表达式

      代码如下:

    Function 提取省市(rng As Range, name)
        
        Application.Volatile
        Set regx = CreateObject("vbscript.regexp")
        
        With regx
            .Global = True
            .Pattern = "[\u4e00-\u9fa5]+"
            Set mat = .Execute(rng)
        End With
        
        Select Case name
        
            Case "省"
                提取省市 = mat.Item(0).Value
                
            Case "市"
                提取省市 = mat.Item(1).Value
            
            Case Else
                MsgBox ("输入有误")
                
        End Select
        
    End Function
    

         代码解释:

      1、rng As Range, name:传递两个参数,第一个参数为单元格参数。

      2、Application.Volatile  Set regx = CreateObject("vbscript.regexp"):创建正则表达式对象,固定语法。

      3、With regx

         .Global = True

         .Pattern = "[\u4e00-\u9fa5]+"

        Set mat = .Execute(rng)

        End With

      Global:表示是否进行全局检索,True表示将所有匹配的结果返回。False则是只返回第一个匹配结果。

      Pattern = "[\u4e00-\u9fa5]+"就是正则表达式了,其中[\u4e00-\u9fa5]+表示匹配中文字符串。

      4、Set mat = .Execute(rng):即执行正则表达式。返回一个matchcollection类型的集合,即匹配到的所有结果。

      5、接下来是一个多条件判断语句,相当于If ...Elif... Else...End If 。

      6、提取省市 = mat.Item(0).Value:前面我们提到mat是一个matchcollection类型的集合,mat.Item(0)表示读取第一个匹配结果,Value表示读取它的值。最后将这个值赋给函数。也可以不用后面的value。

    转载于:https://www.cnblogs.com/yimengtianya1/p/9200917.html

    展开全文
  • Excel 正则表达式 VB 提取字符串

    千次阅读 2016-09-28 11:25:44
    打开Excel,ALT+F11 打开VB 在sheet1 右键 新建模块 贴入代码: Function zz(rng As Range) Dim reg As Object Set reg = CreateObject("VBScript.RegExp") With reg .Global = True .Pattern = "biz=
  • EXCEL 正则表达式

    千次阅读 2010-04-18 23:58:00
    正则表达式在数据有效性验证、替换文本、提取子字符串有很好的应用。 不同的程序或语言对正则表达式的支持是不一样的。像MS Excel,仅支持简单的通配符查找和替换。VBA中没有正则表达式对象,要使用正则表达式的话,...
  • EXCEL 使用正则表达式

    万次阅读 2018-12-24 20:03:09
    本文参考: ... https://blog.csdn.net/catoop/article/details/70247105(Excel 正则表达式提取值) 今天一个朋友让我帮忙将一组 淘宝的宝贝标题里面提取出型号: A B ...
  • 下面Excel VBA自定义函数来提取 字符串中符合正则表达式的字符串 先上效果图: 以下从一个单元格字符串中提取出连续出现的数字,并且空格分割,后面只需分列以下就提取到不同单元格了。 函数代码: ...
  • 一、要让excel脚本支持Microsoft VBScript Regular Expressions 5.5,按快捷键alt+F11,出现下图界面,操作如图示: 二.添加VBA代码: 代码添加完毕后,关闭该窗口。 Function regex(strInput As ...
  • 利用正则表达式,可以编写自定义函数来提取汉字。 在Excel界面按Alt+F11,然后插入一个模块,添加如下代码。 Function Hanzi(rng As Range) As String 正则表达式 With CreateObject("VBSCRIPT.REGEXP") .Global =...
  • Public Sub RegExtractData() Dim StartTime, UsedTime ... MsgBox "提取完成!用时" & Format(UsedTime, "0.00 秒。") End Sub   转载于:https://www.cnblogs.com/nextseven/p/7227702.html
  • '测试:将“abc@@eee”中的@@提取出来 Sub test() MsgBox GetValueByRegex("abc@@eee", "abc(.*?)eee") End Sub Function GetValueByRegex(ByVal OrgStr As String, ByVal PatternStr As String) Set re = ...
  • Excel使用正则表达式

    2019-03-15 14:47:00
    1、使用正则表达式提取子字符串 Function GetStr(ran As range, pattern As String) With CreateObject("VBScript.regexp") .Global = True .IgnoreCase = True .pattern = pattern ...
  • 利用前面的正则表达式,再加上一些jxl包的东西。注意,要想形成xls文件要下载一个jxl包才行,网上应该有的找,我不记得在哪里下载的了,嘻嘻. 放代码: /** * Title: test9 * Description: * Copyright: ...
  • import re phone_regex=re....df=pd.read_excel(r'd:\Users\zhanggl21\Desktop\6月直聊.xlsx') #定义一个空的列表 alst=[] #循环并把匹配到的值添加到列表(注册判断空值) for x in df.聊天记录: if phone...
  • 正则表达式

    万次阅读 2020-07-04 16:30:44
    Excel 使用正则表达式提取数据 大家都知道通配符的作用,例如进行字符串替换时,我们可使用*代替任意字符,使用?代替单个字符,这极大的提高了工作效率。不过这似乎不是最强的,专业编程人员还有更高级的秘密武器--...
  • excel使用正则表达式

    2015-07-04 11:02:33
    excel文件格式:需求:用正则表达式提取D列的***,写到E列中步骤:1.打开excel中的vb编辑器,点击“文件”--“选项”--“自定义功能区”,勾选“开发工具”2.点击确定后,按Ctrl+F11打开vb窗口,点击查看代码,打开...
  • 从txt文件中读取字符串,通过正则表达式提取关键字,并插入mysql数据库的一个小demo. 前言 ​ 因为最近公司需要用到携程上面的一些酒店数据,由于没有接触过爬虫,所以只能投机取巧去爬html源文件的代码,然后在源...
  • EXCEL表内遇到有规律性的数据需要提取或者替换时,比如在数据中提取时间,身份证号码等,EXCEL内自带的查找替换就难以实现,我们可以利用VBA适用正则表达式去对数据进行匹配。 什么是正则表达式正则表达式,...
  • Excel中使用正则表达式的方法

    万次阅读 2019-05-22 11:40:49
    简单介绍一下Excel中如何使用正则表达式 1、导入ExcelAPI A:下载ExcelAPI B:打开Excel-文件-工具-加载项,选择ExcelAPI,然后导入xll文件 2、正则表达式样例 举例: 字符串:ADB123 A: 提取字符,结果为...
  • 正则表达式自动生成器是一个智能、易用的正则表达式生成、测试以及字符串提取工具。正则表达式库让你可以直接借用正则表达式,而无需自己费脑筋。“正则表达式自动生成器”可以自动生成正则表达式,测试正则表达式,...
  • 上一节学习了如何解析网页,说白了就是怎么将一个html文件中的信息提取出来,当然这需要有一定的html基础,这样对于一些标签的使用更加的...利用正则表达式将我们想要提取的信息样式表达出来,然后直接匹配爬取即可!
  • 正则表达式主要是用来做字符匹配的,有一套自己的匹配规则,目前基本上所有的高级语言(Java)、脚本语言(perl)、文本编码器(txt、editplus)和办公软件(excel)都支持正则表达式。   正则表达式主要就是制定一套字符...
  • 这次扯个题外话,原因是为帮同学获取快递网点信息 要求:得到上海市天天快递...最后要将结果放到Excel中,具体如下 下图是某一个网点的信息 一共有78个网点,链接地址http://www.ttkdex.com/webdistributed/5.html
  • Excel自定义函数使用正则表达式详解

    千次阅读 2015-01-29 10:45:01
    http://www.111cn.net/office/excel/52912.htm 函数ExStr功能,根据正规表达式,替换...正则表达式字符串 '参数 ActionID 函数功能 1正则方法一,替换符合正规表达式的字符  ?正则方法二 判断是否有符合正规表达式
  • 日前在一个应用开发中需要提取Excel表格中的百分数,尝试了各种方法不得所愿,最后使用正则表达式解决了,具体代码参考下面: '自定义函数:根据传递过来的匹配表达式partn,对strng进行查找,并输出查找的结果 ...
  • 在VB6/VBA中使用正则表达式 一、关于起因 最近在Office的QQ群里问如何在一串字符串中提取数值并加总的问题。如果使用正则表达式可以非常迅速的解决这个问题。 那么今天我就探讨一下在VB6/VBA中使用正则表达式的...
  • 1.问题描述 实现对固定网页上自己需要的信息抓取,以表格形式存储。...(2)根据需要的信息写出正则表达式,读文件,根据正则表达式提取需要的信息。写正则表达式的时候最好分组,这样提取起来就方便了很多。
  • 在字符串的正则表达式匹配上有所不足 无法处理excel多重表头(excel中出现合并单元格之后怎么办?MultiIndex如何处理?) 没有中间存储的机制(有中间数据先进行保存如果有需要手动检查的会更方便) Input 输入的...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 152
精华内容 60
关键字:

excel正则表达式提取