使用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的搜索框中,勾选匹配正则表达式,就可以看到要提取的数字都被正确地标记出来了,那么要怎样把它们复制出来呢?

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

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一份基于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、付费专栏及课程。

余额充值