首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从微软 Word 中提取数据

当前公司情况是 Word 文件记录了大量会议纪要,由于过去操作习惯和延续性,这种做法一直保留了下来。...但是,这种做法给我们带来了许多不便,需要将会议纪要任务提取出来,将任务变成数据库记录,并且当任务完成时需要在数据库更新其状态。我们希望找到一种最佳方法来完成这一任务。...我们希望找到一种方法来解决这个问题。此外,我们还在提取数据过程遇到了一个小问题,当我们从 Word 表格中提取字符串时,个字符末尾都会出现一个奇怪小方框字符。...这种方案好处是,我们可以直接在 Word 运行 VBA 宏,并且使用 Left() 函数来去除字符串末尾小方框字符,这对于我们来说也比较简单。...如果你需要提取特定内容,例如表格数据、特定样式段落或带有特定格式文本,可以遍历文档时添加更多逻辑处理。

14110

Bash 脚本:正则表达式基础篇

它意味着所提到正则表达式将寻找一个词,它以 开始,中间包含字母 任意一个,并且字母 最为最后一个字符。它可以是 , 或者 ,可以匹配一个单独词或者其它单词像 , 或者 一部分。...(点) 它用于匹配出现在我们搜索项任意字符。举个例子,我们可以使用点如: 这个正则表达式意味着我们名为 ‘file1’ 文件查找 开始, 结尾,中间可以有 1 个字符字符串。...例如,我们需要搜索一些特别的单词而不是匹配任何字符, 这里,我们正寻找一个单词, 开头, 结尾并且中间只能有 、 或者 一个。 方括号我们可以提到单个到任意数量字符。...到现在为止,我们只使用了仅需要在中间查找单个字符正则表达式例子,但是如果我们需要更多字符该怎么办呢。假设我们需要找到个字符开头和结尾所有单词,并且中间可以有任意数量字符。...我们只是搜索寻找单词,为什么我们得到了整个句子作为我们输出。 这是因为它满足我们搜索标准,它以字母 开头,中间有任意数量字符并以字母 结尾

1.8K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    正则表达式总结

    <=\bre)\w+\b匹配re开头单词后半部,比如reading a book匹配ading。 九、负向零宽断言 确保个字符是否出现,但是不想去匹配它。 …… 十、注释 (?...十一、贪婪与懒惰 (1) 贪婪:当正则能包含重复字符时,匹配尽可能多字符。 eg. a.*b匹配最长a开头,b结尾字符串 (2) 懒惰:匹配尽可能少字符,在后面加上?, eg. .*?...*b,则匹配为aabab;(这里认为“b结尾”是以最后一个b结尾) 懒惰匹配:a.*?...b,则匹配为aab和ab;(这里认为“b结尾”是以第一个碰到b结尾中间就截断了) 注意:优先级→ 贪婪匹配>懒惰匹配 十二、如何写出高效率正则表达式 如果纯粹是为了挑战自己正则水平,用来实现一些特效...写出一条正则表达式,既可能只出现误匹配(条件写得极宽松,其范围大于目标文本),也可能只出现漏匹配(只描述了目标文本多种情况种一种),还可能既有误匹配又有漏匹配。

    83750

    手撕Python之正则

    正则表达式是一种通用用来简洁表达一组字符串表达式,利用正则表达式可以方便快捷匹配和筛选字符串 举个例子:一堆数据中进行电话号码寻找,我们需要根据电话号码特征在这一堆数据进行电话寻找,电话是...+','Testabctest')) #[] 如果字符串开头不是T的话,返回就是个空列表了 $ 设置匹配结尾字符 import re #t结尾 print(re.findall('^t\w+t...,那么我们+后面添加一个问号看看 import re #T结尾 print(re.findall('^t\w+?...上面是第一种拆分方法,我们还有第二种方法进行拆分 l=re.split('[123]',s) print(l) #['huahua', 'xiaoming', 'lisi', 'lala'] 直接将拆分数字列举括号内...这里正则表达式模式是 've\b'。 让我们分解一下这个正则表达式: ve:这部分表示匹配文本 "ve" 这两个字符

    12110

    干货 | Office文档钓鱼实战和免杀技巧

    cmd.exe来举例, 将其重命名为cmdgpj.exe,然后 cmd 与 g 之间右键,看图操作 ok,此时已经变成了 jpg 结尾了。但是双击运行还是 exe 格式运行。...Visual Basic for Applications(VBA)是Visual Basic一种宏语言,是微软开发出来在其桌面应用程序执行通用自动化(OLE)任务编程语言。...这是通过从项目流[MS-OVBA 2.3.1]删除模块行来实现。...EvilClippy.exe -gg macrofile.doc Stomp VBA(滥用P代码)VT 查杀 12/60 效果很好,过火绒 将来自文本文件fakecode.vba虚假VBA代码放在所有模块...可以将IYQ简单理解成内置excel一种特殊‘web浏览器’(不能加载脚本),通过IQY【即web查询】语句,可以直接将各类web上列表数据轻松引入到当前excel,而正是因为这样,从而给了我们利用

    7.2K21

    Python 自动化指南(繁琐工作自动化)第二版:六、字符串操作

    您甚至可以编写 Python 代码来访问剪贴板,复制和粘贴文本本章,你将了解所有这些以及更多。...用partition()方法拆分字符串 partition()字符串方法可以将一个字符拆分成分隔符字符串前后文本。...这些项目一种风格编写,将您从一个空白文件编辑器窗口带到一个完整工作程序。就像交互式 Shell 示例一样,不要只阅读项目部分——计算机上跟着做!...这个字符串被传递给print()屏幕上显示我们猪拉丁。 你可以找到其他简短基于文本 Python 程序,比如这个。...总结 文本一种常见数据形式,Python 附带了许多有用字符串方法来处理存储字符串值文本。您将在您编写几乎每个 Python 程序中使用索引、切片和字符串方法。

    3.2K30

    正则表达式30分钟入门教程

    通常,处理正则表达式工具会提供一个忽略大小写选项,如果选中了这个选项,它可以匹配 hi,HI,Hi,hI这四种情况任意一种。...没关系,看例子: 0\d{2}-\d{8}|0\d{3}-\d{7}这个表达式能匹配两种连字号分隔电话号码:一种是三位区号,8位本地号 (如010-12345678),一种是4位区号,7位本地号 (...]+>匹配用尖括号括起来 a开头字符串。 后向引用 使用小括号指定一个子表达式后,匹配这个子表达式文本(也就是此分组捕获内容)可以表达式或其它程序作进一步处理。...但是如果我们只是想要确保个字符没有出现,但并不想去匹配它时怎么办?...这是因为 [^u]总要匹配一个字符,所以如果q是单词最后一个字符的话,后面的 [^u]将会匹配q后面的单词分隔符(可能是空格,或者是句号或其它什么),后面的 \w*\b将会匹配下一个单词,于是 \b

    96130

    NLP将迎来黄金十年,7个案例带你入门(附Python代码)

    对于学习和从事自然语言处理工作来说,Python具有几大优势: 提供丰富自然语言处理库 编程语法相对简单(尤其易于理解) 具有很多数据科学相关库 01 正则表达式NLP基本应用 正则表达式是一种定义了搜索模式特征序列...正则表达式是处理NLP最基本手段之一,学习与掌握正则表达式Python应用,可以帮助我们格式复杂文本抽取所需要文本信息。...比如说抽取以下文本年份,每一行格式不同,因此没有办法通过Python提供字符串方法来抽取,这个时候我们往往考虑使用正则表达式。...我们先看下准备有关爬虫介绍文字信息。句子和句子之间是以句号分隔。具体文本如下所示: 文本最重要来源无疑是网络。我们要把网络文本获取形成一个文本数据库。利用一个爬虫抓取到网络信息。...符号 含义 ^ 匹配开始字符串 $ 匹配结尾字符串 ▲匹配开始与结尾字符串 举个例子: “^a”代表是匹配所有字母a开头字符串 “a$”代表是所有字母a结尾字符串 我们现在来演示下如何查找

    1.6K30

    VBA:正则表达式(9) -添加千分位(13)

    之前一篇文章中介绍了环视,参见文末参考资料[1]。环视一个经典应用是添加千分位。添加千分位一个正则表达式如下: (?<!\.\d+)(?<=\d+)(?=(\d{3})+(?!...\d)) 文本:12345678.12345678 替换文本:, 结果:12,345,678.12345678 上面的正则表达式可以拆分成以下三个部分: (1)?<!\.\d+,逆序否定环视。...所在位置右侧,连续数字字符个数是三整数倍;并且其后跟随一个非数字字符(小数点.,或者结束标识符$,等等)。...VBA通常使用是VBScript正则(vbscript.regexp),不支持逆序环视。因此,上述正则表达式VBA无法使用,现在通过一种变通方法来实现这个需求。...结束标识$本意是希望用来匹配整数结尾,但是小数部分也可能匹配到,所以小数部分也添加了千分位,这显然是不对

    26810

    Word VBA实战应用:给文本添加屏幕提示

    标签:Word VBA 本文提供Word VBA程序可以Word制作类似网站屏幕提示,即将鼠标悬停在特定文本上时显示包含相关信息小框。...如果这样的话,你必须依次执行选择文本、添加书签、创建超链接、选择书签、输入屏幕提示文本等操作。 下面是一组自动执行这些操作VBA程序。...As String Public Style As VbMsgBoxStyle Public Response As VbMsgBoxResult '下面的程序将选择文本转换成超链接 '在用户鼠标放置文本上时显示特定屏幕提示...此时,当用户将鼠标悬停在所选文本上时,输入文本将显示屏幕提示文本也应用了指定背景色,以便于用户容易识别包含有屏幕提示文本。...如果想将屏幕提示多行显示,可以需要换行地方输入换行符(示例为“#”)。 要删除屏幕提示,选择相应文本,然后运行RemoveScreenTipFromText过程。

    1.8K20

    Python实战之字符串和文本处理

    将Unicode文本标准化,正则式中使用Unicode 合并拼接字符串,字符串插入变量,删除字符串不需要字符 指定列宽格式化字符串,字符串处理html和xml 字节字符串上字符串操作...--------王小波」 ---- 字符串和文本处理 针对任意多分隔符拆分字符串 「你需要将一个字符串分割为多个字段,但是分隔符 (还有周围空格) 并不是固定」 string 对象 split(...:,|;|\s)\s*', line) ['asdf', 'fjdk', 'afed', 'fjek', 'asdf', 'foo'] >>> 字符串开头或结尾处做文本匹配 「你需要通过指定文本模式去检查字符串开头或者结尾...可以强制匹配算 法改成寻找最短可能匹配。 编写多行模式正则表达式 「使用正则表达式去匹配一大块文本,而你需要跨越多行去匹配。」 很典型出现在当你用点 (.)...Python 并没有对字符串简单替换变量值提供直接支持(类似shell那样)。但是通过使用字符串format()方法来解决这个问题。

    1.1K20

    红队 | CS加载宏上线初探

    : EvilClippy是一款专用于创建恶意MS Office测试文档跨平台安全工具,它可以隐藏VBA宏和VBA代码,并且可以对宏代码进行混淆处理增加宏分析工具分析难度。...该工具重用了部分Kavod.VBA.Compression代码来实现压缩算法,并且使用了Mono C#编译器实现了Linux、macOS和Windows平台上完美运行。...VBA stomping VBA Office 文档可以以下面三种形式存在 1、源代码: 宏模块原始源代码被压缩,并存储模块流末尾。...3、ExeCodes: 当 P-Code 执行一次之后,其会被一种标记化形式存储 SRP 流,之后再次运行时会提高 VBA 执行速度,可以将其删除,并不影响宏执行。...再进行混淆操作 #先使用一个模块来设置随机模块名,混淆了一些分析工具,会生成一个_EvilClippy.docm结尾文件 mono EvilClippy.exe -r Doc1.docm #其次使用之前设置

    2.8K30

    正则表达式30分钟入门教程 转

    元字符^(和数字6同一个键位上符号)和$都匹配一个位置,这和\b有点类似。^匹配你要用来查找字符串开头,$匹配结尾。...]+>匹配用尖括号括起来a开头字符串。 后向引用 使用小括号指定一个子表达式后,匹配这个子表达式文本(也就是此分组捕获内容)可以表达式或其它程序作进一步处理。...但是如果我们只是想要确保个字符没有出现,但并不想去匹配它时怎么办?...这是因为[^u]总要匹配一个字符,所以如果q是单词最后一个字符的话,后面的[^u]将会匹配q后面的单词分隔符(可能是空格,或者是句号或其它什么),后面的\w*\b将会匹配下一个单词,于是\b\w*q...就意味着匹配任意数量重复,但是能使整个匹配成功前提下使用最少重复。现在看看懒惰版例子吧: a.*?b匹配最短a开始,b结束字符串。

    90520

    TensorFlow2学习:RNN生成古诗词

    我们原始数据poetry.txt,每一行是一首诗,按":"符号分隔为诗标题、内容,其中还有逗号、句号。...现在,我们需要对诗句进行分词,不过考虑到为了最后生成长度整齐性,以及便利性,我们在这里按单个字符进行拆分。...(你也可以使用专业分词工具,例如jieba、hanlp等) 并且,我们还需要统计一下词频,删除掉出现次数较低词 # 最小词频 MIN_WORD_FREQUENCY = 8 # 统计词频,利用Counter...因为我们数据去除了低频词,并且我们文本不可能包含全世界所有的字符,因此需要一个字符来表示未知字符。 需要一个字符来填充诗词,保证诗词长度统一。因为单个批次内训练数据特征长度必须一致。...(len(p), p=p) # 前面预测时删除了前几个标记符,因此编号要补上3位,才是实际tokenizer词典编号 return p_args[target_index] + 3

    1.6K30

    小时到分钟 - 一步步优化巨量关键词匹配

    字典树,又称前缀树或 trie 树,是一种有序树,用于保存关联数组,其中键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树位置决定。...设计 那么 trie 树怎么实现关键字匹配呢? 这里一幅图来讲解 trie 树匹配过程。 ? 其中要点: 构造trie树 将关键词用上面介绍preg_split()函数拆分为单个字符。...最后一个字符后添加一个特殊字符 `,此字符作为一个关键词结尾(图中粉红三角),以此字符来标识查到了一个关键词(不然,我们不知道匹配到科、学两个字符时算不算匹配成功)。...检查根部是否有第一个字符(科)节点,如果有了此节点,到步骤4。 如果还没有,根部添加值为科节点。 依次检查并添加学、家 两个节点。 结尾添加`节点,并继续下一个关键词插入。...首先我们将句子拆分为单个字符 这、位、...; 从根查询第一个字符这,并没有个字符开头关键词,将字符“指针”向后移,直到找到根下有的字符节点科; 接着节点科下寻找值为 学节点,找到时,结果子树深度已经到了

    1.8K60

    这可能是迄今为止最好一篇正则入门教程-下

    没关系,看例子: 0\d{2}-\d{8}|0\d{3}-\d{7} 这个表达式能匹配两种连字号分隔电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376...后向引用 使用小括号指定一个子表达式后,匹配这个子表达式文本(也就是此分组捕获内容)可以表达式或其它程序作进一步处理。...负向零宽断言 前面我们提到过怎么查找不是某个字符或不在某个字符类里字符方法(反义)。 但是如果我们只是想要确保个字符没有出现,但并不想去匹配它时怎么办?...这是因为[^u]总要匹配一个字符,所以如果q是单词最后一个字符的话,后面的[^u]将会匹配q后面的单词分隔符(可能是空格,或者是句号或其它什么),后面的\w*\b将会匹配下一个单词,于是\b\w*q...这个表达式为例:a.*b,它将会匹配最长a开始,b结束字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。

    70550

    Python 入门指南第三节 | Python 简介

    Python 简介 下面的例子,输入和输出分别由大于号和句号提示符( >>> 和 ... )标注:如果想重现这些例子,就要在解释器提示符后,输入(提示符后面的)那些不包含提示符代码行。...Python 注释 # 字符起始,直至实际行尾(译注——这里原作者用了 physical line 表示实际换行而非编辑器自动换行)。...注释可以从行首开始,也可以空白或代码之后,但是不出现在字符串文本字符串 # 字符仅仅表示 # 。代码注释不会被 Python 解释,录入示例时候可以忽略它们。...交互式解释器,输出字符串会用引号引起来,特殊字符会用反斜杠转义。虽然可能和输入看上去不太一样,但是两个字符串是相等。如果字符串只有单引号而没有双引号,就用双引号引用,否则用单引号引用。...一种方法是使用三引号:“”“…”“” 或者 ‘’‘…’‘’。行尾换行符会被自动包含到字符串,但是可以在行尾加上 \ 来避免这个行为。

    36640

    正则表达式30分钟入门教程

    没关系,看例子: 0\d{2}-\d{8} 0\d{3}-\d{7}这个表达式能匹配两种连字号分隔电话号码:一种是三位区号,8位本地号(如010-12345678),一种是4位区号,7位本地号(0376...]+>匹配用尖括号括起来a开头字符串。 后向引用 使用小括号指定一个子表达式后,匹配这个子表达式文本(也就是此分组捕获内容)可以表达式或其它程序作进一步处理。...但是如果我们只是想要确保个字符没有出现,但并不想去匹配它时怎么办?...这是因为[^u]总要匹配一个字符,所以如果q是单词最后一个字符的话,后面的[^u]将会匹配q后面的单词分隔符(可能是空格,或者是句号或其它什么),后面的\w*\b将会匹配下一个单词,于是\b\w*q...就意味着匹配任意数量重复,但是能使整个匹配成功前提下使用最少重复。现在看看懒惰版例子吧: a.*?b匹配最短a开始,b结束字符串。

    84400

    10个很棒 JavaScript 字符串技巧

    但是,今天我们可以使用padStart和SpadEnd方法,选择哪种方法取决于是字符串开头还是结尾填充字符串。 // 开头添加 "0",直到字符串长度为 8。...遇到边缘情况就有需要首先将单词拆分为字素簇。 6. 如何将字符串第一个字母大写 一个非常常见操作是将字符串第一个字母大写。...虽然许多编程语言都有一种本地方法来实现这一点,但 JS 需要做一些工作。...console.log(text.includes("Kai")); // true 9.如何检查字符串是否特定序列开头或结尾 字符串开头或结尾进行搜索,可以使用String.startsWith...同时,它也是新开发人员学习最早数据类型之一。然而,尤其是JavaScript,许多开发人员并不知道关于字符串一些有趣细节。希望此文对你有所帮助。 我是小智,我们下期见。

    1.1K20

    干货 | 数据科学入门必读:如何使用正则表达式?

    这就是正则表达式用武之地。正则表达式(regular expression)也被称为 RE、regex 和 regular pattern,这是一种让我们能快速筛查和分析文本紧凑型语言。...每个名称都输出显示方括号,因为 re.findall 列表形式返回匹配结果。 5 如果我们想得到电子邮箱地址呢?...*\w,也就是说我们想要模式是一组字母数字字符结尾任意类型字符。这样就排除了 >。因此,完整电子邮箱地址模式就为 \w\S*@.*\w 看起来有些麻烦。...re.search() re.findall() 匹配是一个模式个字符所有实例然后列表形式返回它们,而 re.search() 匹配是一个模式个字符第一个实例,然后 re...我们返回一个字符串列表并为其分配一个变量,其中每个字符串都包含了 From: 字段内容。接下来我们遍历整个列表,寻找电子邮箱地址。

    82020
    领券