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

从微软 Word 中提取数据

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

16110

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

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

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

    正则表达式总结

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

    84550

    手撕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" 这两个字符。

    12210

    干货 | 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.8K21

    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

    97030

    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)?的右侧,连续数字字符的个数是三的整数倍;并且其后跟随一个非数字字符(小数点.,或者结束标识符$,等等)。...VBA中通常使用的是VBScript正则(vbscript.regexp),不支持逆序环视。因此,上述的正则表达式在VBA中无法使用,现在通过一种变通的方法来实现这个需求。...结束标识$本意是希望用来匹配整数的结尾,但是小数部分也可能匹配到,所以小数部分也添加了千分位,这显然是不对的。

    28410

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

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

    1.1K20

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

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

    1.8K20

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

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

    91120

    红队 | 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

    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。这被称为贪婪匹配。

    70950

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

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

    37540

    正则表达式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结束的字符串。

    84800

    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: 字段的内容。接下来我们遍历整个列表,寻找电子邮箱地址。

    82820
    领券