使用VS Code提取指定特征的文本

目标

查找含指定特征的文本,并把这些文本单独复制出来。

背景

有些网页做了限制,不能直接选择全部文本,或在一个大表格中,只能选择当前屏的行,下拉不能做到全选,这时候可以用开发者工具(F12),拿到接口返回值,但要从结果数据里面提取出想要的内容。

工具

正则表达式

VS Code(其他编辑器可能也能做到,但我觉得VS Code更方便些)

Show Time

我要从一个json文本中,提取出a键中的数字(这里它可能是一些id,然后我要拿这些id去数据库中做IN查询),分析一下它与其他元素的区别:要提取的是数字,最少有一个数字,最多有三个数字,后面跟一个逗号,那么我们可以写正则表达式:

[0-9]{1,3},

这里的[0-9]表示符合0-9中任意一个字符即可,{1,3}表示前一个表达式要匹配1-3次,后面逗号就是表示匹配逗号,然后在Ctrl+F的搜索框中,勾选匹配正则表达式,就可以看到要提取的数字都被正确地标记出来了,那么要怎样把它们复制出来呢?

这时候只需点击菜单栏中的选择->选择所有匹配项,就能把标记内容全部选中了,然后就简单了,右键选中的内容,选择复制,再粘贴到其他地方即可。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
更新说明: 2017-02-04(yaya) Ls command: Empty Folder returns false. 2016-12-08(yaya) 修正lz4、vhd不显示解压缩进度指示。增加lzma解压缩进度指示。 2016-11-09(不点) 0x8205 bit 5 = 1: 使checkkey闲置循环停止指令。 2016-04-13(yaya) 支持动画菜单 setmenu --graphic-entry=类型=菜单行数=菜单列数=图形宽(像素)=图形高(像素)=菜单行间距(像素) 菜单项0的路径文件名 类型: 位0:高亮指定颜色 位1:高亮颜色翻转 位2:高亮显示线框 位7:背景透明(最好使用黑色背景) 文件名: *n.??? 格式 n=00-99 高亮颜色由 color HIGHLIGHT=0xrrggbb 指定。 字符可以使用任意字型、字高、颜色,可以辅以图标。 2016-03-25(yaya) 菜单字符可以使用不同字型。 例如:"七" 使用不同字型,将 .hex 文件中的 unicode 码 “4e03” 修改为 “0080”, 将菜单中的 "七" 修改为 “\X0080”。 2016-03-23(yaya) 增强 echo 函数功能。 例如:echo -e \x18 显示 UTF-8 字符 0x18。 echo -e \X2191 显示 unicode 字符 0x2191。 2016-03-15(yaya) 1.增加动画控制热键 F2:播放/停止。 2.增加动画控制位 0x835b,位0:0/1=停止/播放。 3.增加精简字库模式:--simp=起始0,终止0,...,起始3,终止3 中文可以使用 --simp= ,内置字库应当包含 DotSize=[font_h],['simp'] 例如:font --font-high=24 --simp= /24_24.hex DotSize=24,simp 不使用热键: 可以加载 32*32 unifont 全字库 使用热键: 可以加载 24*24 unifont 全字库 使用精简字库: 可以加载 46*46 汉字全字库 使用精简字库及热键:可以加载 40*40 汉字全字库 4.不再支持 bin 格式字库。 2016-03-03(yaya) 1.增加图像背景色设置方法。 splashimage --fill-color=[0xrrggbb] 作用之一,作为小图像的背景。 作用之二,直接作为菜单的背景(即不加载图像背景)。此时只设置字体的前景色即可。 2.增加动画菜单。 splashimage --animated=[type]=[delay]=[last_num]=[x]=[y] START_FILE 类型[type]:bit 0-3: 播放次数 bit 4: 永远重复 bit 7: 透明背景 type=00:禁止播放 播放n次:序列图像各显示n次,时间独占。可作为启动前导、序幕。 永远重复:序列图像无限循环,时间与菜单共享。可作为菜单里的动画。 背景透明:即抠像。要求4角像素为背景色。 背景色最好为白色或黑色,这样可以去除一些灰色杂波。若是彩色背景,则应当非常干净。 提醒:请以16进制方式输入。否则易错。 延迟[delay]:序列图像之间的延迟。单位是滴答,即1/18.2秒。 序列数[last_num]:序列图像总数(2位数,从1开始计数)。 偏移[x]、[y]:图像偏移,单位像素。 起始图像文件 START_FILE 命名规则:*n.??? n: 1-9 或 01-99 或 001-999。 3.增加固定图像的背景色可以透明。 splashimage [--offset=[type]=[x]=[y]] FILE 类型[type]:bit 7: 透明背景 2016-02-14(yaya) setmenu 函数增加菜单项目背景短/满参数(默认短) 2016-01-19(yaya) splashimage 函数增加图像起始偏移(默认0) 2015-08-20(yaya) 1.支持非
Matlab7.x图像处理 ch2_1_1:查看直方图(§2.1.3) ch2_2_1:显示图像(§2.2.2) ch2_3_1:添加颜色条(§2.3.1) ch2_3_2:图像的单帧显示(§2.3.2) ch2_3_3:图像的多帧显示(§2.3.2) ch2_3_4:图像的动画显示(§2.3.2) ch2_3_5:灰度图像的动画显示(§2.3.2) ch2_3_6:纹理映射(§2.3.3) ch2_3_7:一个图形窗口中同时显示2幅图像(§2.3.4) ch3_1_1:嵌套使用图像代数函数(§3.1.1) ch3_1_2:两幅图像相加(§3.1.2) ch3_1_3:图像与常数相加(§3.1.2) ch3_1_4:两幅图像相减(§3.1.3) ch3_1_5:两幅图像相乘(§3.1.4) ch3_1_6:图像除以常数(两幅图像相除)(§3.1.5) ch3_2_1:图像缩放(§3.2.2) ch3_2_2:图像旋转(§3.2.3) ch3_2_3:图像剪切(§3.2.4) ch3_2_4:生成和应用仿射变换(§3.2.5) ch3_2_5:findbounds函数的应用(§3.2.5) ch3_2_6:makeresampler函数的应用(§3.2.5) ch3_2_7:投影变换(§3.2.5) ch3_3_1:计算图像的局部标准差(§3.3.1) ch3_3_2:计算输入图像的3×3邻域像素值的最大值(§3.3.2) ch3_4_1:根据指定的坐标选择一个六边形区域(§3.4.1) ch3_4_2:按灰度分割图像中的目标(§3.4.1) ch3_4_3:函数poly2mask的调用格式(§3.4.1) ch3_4_4:对指定区域进行锐化滤波(§3.4.2) ch3_4_5:填充指定的区域(§3.4.3) ch4_1_1:矩形连续函数的傅立叶变换(§4.1.1) ch4_1_2:构建一个矩形函数(§4.1.2) ch4_1_3:对f进行二维快速傅立叶变换(§4.1.2) ch4_1_4:对f进行补零(区域大小为256×256),而后进行二维快速傅立叶变换(§4.1.2) ch4_1_5:使变换结果的零频率分量位于中心,调用函数fftshift(§4.1.2) ch4_1_6:利用函数ifft2对乘积进行傅立叶反变换(§4.1.3) ch4_1_7:得到在图像text.png中对应字母“a”的定位结果(§4.1.3) ch4_2_1:对一幅图像进行离散余弦变换(§4.2.1) ch4_2_2:JPEG图像压缩(§4.2.2) ch4_3_1:正方形图像在0°和45°方向上的Radon变换(§4.3.1) ch4_3_2:计算方形图像从0°到180°每隔1°计算一次Radon变换的命令(§4.3.1) ch4_3_3:直线检测(§4.3.1) ch4_3_4:利用radon函数和iradon函数构造一个简单图像的投影并重建图像(§4.3.2) ch4_4_1:映射和重建图像(§4.4.1) ch5_1_1: 图像灰度线性变换 (§5.1.1) ch5_1_2: 图像灰度分段线性变换 (§ 5.1.1) ch5_1_3: 采用对数形式的变换函数进行动态范围压缩 (§5.1.1) ch5_1_4: 图像直方图的均衡化 (§5.1.2) ch5_1_5: 直方图规定化 (§5.1.2) ch5_2_1: 邻域平均的线性平滑滤波法实现降噪 (§5.2.2) ch5_2_2: winner滤波法实现降噪 (§5.2.2) ch5_2_3: 中值滤波实现降噪 (§5.2.2) ch5_2_4: 线性锐化滤波 (§5.2.3) ch5_2_5: 非线性锐滤波 (§5.2.3) ch5_3_1: Buterworth低通滤波器 (§5.3.1) ch5_3_2: Buterworth高通滤波器 (§5.3.2) ch5_4_1: 灰度分层法彩色图像的实现 (§5.4.2) ch5_4_2: 空间域灰度级-彩色变换的方法,进行图像增强 (§5.4.2) ch5_4_3: 均值滤波器对真彩图像的每一个颜色平面进行滤波 (§5.4.3) ch5_5_1: 噪声图像的生成 (§5.5.4) ch5_5_2: 目标图像的生成 (§5.5.4) ch6: 哈夫曼编码 (§6.1.4) ch7_1_1: 最大方差法计算灰度分割门限 (§7.1.2) ch7_1_2: 各种边缘检测算子 (§7.2.2) ch7_2_1.: hough 变换实现直线检测 (§7.2.3) ch7_2_2.: 相位编组 (§7.2.3) ch8_3_1:得到模糊图像(§8.3.2) ch8_3_2:原始图像中添加噪声(§8.3.2) ch8_4_1:生成模糊化实验图像(§8.4.1) ch8_4_2:维纳滤波复原(§8.4.2) ch8_4_3:约束最小二乘滤波复原(§8.4.3) ch8_4_4:Lucy-Richardson滤波复原(§8.4.4) ch8_4_5:盲卷积滤波复原(§8.4.5) ch9_2_1:调用函数bwmorph实现骨架化操作(§9.2.4) ch9_2_2:利用函数bwperim实现提取边界操作(§9.2.4) ch9_2_3:利用函数bwmorph实现提取边界操作和骨架化操作(§9.2.4) ch9_2_4:利用函数imbothat处理图像(§9.2.4) ch9_2_5:利用函数imclose执行图像闭运算(§9.2.4) ch9_2_6:利用函数imopen执行图像开运算度(§9.2.4) ch9_2_7:利用函数imtophat增强图像对比度(§9.2.4) ch9_3_1:生成了包含两个主要的局部极小值区域和几个其它局部极小值区域(§9.3.4) ch9_4_1:距离变换(§9.4) ch9_5_1:调用函数label2rgb将每个对象显示为不同的颜色(§9.5.1) ch9_5_2:提取文本图像中的某些字符对象(§9.5.2) ch9_5_3:利用函数bwarea计算对图像执行膨胀操作后面积增长的百分比(§9.5.3) ch9_5_4:利用函数bweuler进行欧拉数计算(§9.5.4) ch9_6_1:调用函数makelut和applylut实现查表操作(§9.6) ch10_1_1:利用函数imfilter实现图像滤波(§10.1.3) ch10_2_1:利用频率变换法生成一个2-D滤波器(§10.2.2) ch10_2_2:利用频率采样法生成一个2-D滤波器(§10.2.3) ch10_2_3:利用窗口法生成一个2-D滤波器(§10.2.4) ch10_2_4:设计一个截止频率为0.5的理想低通滤波器(§10.2.5)
好的,我可以为您提供一份基于C++的代码示例来实现对文本的语法分析与关键字提取。同时,我们可以使用C++标准库提供的JSON解析器来完成这个任务,这样就无需使用开源的JSON库了。 以下是代码示例: ```cpp #include <iostream> #include <string> #include <vector> #include <unordered_set> #include <sstream> #include <fstream> #include <nlohmann/json.hpp> using namespace std; using json = nlohmann::json; // 分割字符串 vector<string> split(string str, char delim) { vector<string> res; stringstream ss(str); string token; while (getline(ss, token, delim)) { res.push_back(token); } return res; } // 判断是否为关键字 bool isKeyword(string word) { static unordered_set<string> keywords = { "if", "else", "while", "for", "int", "double", "float", "long", "short", "char", "bool", "true", "false", "void", "return" }; return keywords.count(word) > 0; } // 提取关键字 vector<string> extractKeywords(string code) { vector<string> res; vector<string> lines = split(code, '\n'); for (string line : lines) { vector<string> words = split(line, ' '); for (string word : words) { if (isKeyword(word)) { res.push_back(word); } } } return res; } // 解析JSON json parseJSON(string jsonStr) { json j; istringstream iss(jsonStr); iss >> j; return j; } int main() { // 读取代码文件 ifstream ifs("test.cpp"); string code((istreambuf_iterator<char>(ifs)), (istreambuf_iterator<char>())); // 提取关键字 vector<string> keywords = extractKeywords(code); for (string keyword : keywords) { cout << keyword << endl; } // 解析JSON字符串 string jsonStr = "{ \"name\": \"John\", \"age\": 30, \"city\": \"New York\" }"; json j = parseJSON(jsonStr); cout << j["name"] << endl; cout << j["age"] << endl; cout << j["city"] << endl; return 0; } ``` 在这个示例中,我们首先定义了一个 `split` 函数,用于将一个字符串按照指定的分隔符拆分成多个子串。然后,我们定义了一个 `isKeyword` 函数,用于判断一个字符串是否为C++语言中的关键字。最后,我们定义了一个 `extractKeywords` 函数,用于从代码中提取出所有的关键字。 接下来,我们使用C++标准库提供的 `ifstream` 类来读取一个本地的C++代码文件,并将其保存到一个字符串中。然后,我们调用 `extractKeywords` 函数来提取出代码中的关键字,并将它们打印出来。 最后,我们使用 `parseJSON` 函数来解析一个JSON字符串,并使用 `json` 类来访问其中的数据。在这个示例中,我们只是简单地打印了JSON中的某些字段,但您也可以根据自己的需求来进一步处理JSON数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值