目录标题

  • 提取字符串中的信息
  • 元字符
  • MATLAB正则表达式函数
  • 代码链接
  • 补充的例子
  • 例子一(matlab把stata格式写为latex格式)
    • 问题描述
    • 代码实现

提取字符串中的信息

提取字符串中的信息步骤流程图如下:

#mermaid-svg-s3RPIhKsHbkOhXMU {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-s3RPIhKsHbkOhXMU .error-icon{fill:#552222;}#mermaid-svg-s3RPIhKsHbkOhXMU .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-s3RPIhKsHbkOhXMU .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-s3RPIhKsHbkOhXMU .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-s3RPIhKsHbkOhXMU .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-s3RPIhKsHbkOhXMU .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-s3RPIhKsHbkOhXMU .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-s3RPIhKsHbkOhXMU .marker{fill:#333333;stroke:#333333;}#mermaid-svg-s3RPIhKsHbkOhXMU .marker.cross{stroke:#333333;}#mermaid-svg-s3RPIhKsHbkOhXMU svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-s3RPIhKsHbkOhXMU .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-s3RPIhKsHbkOhXMU .cluster-label text{fill:#333;}#mermaid-svg-s3RPIhKsHbkOhXMU .cluster-label span{color:#333;}#mermaid-svg-s3RPIhKsHbkOhXMU .label text,#mermaid-svg-s3RPIhKsHbkOhXMU span{fill:#333;color:#333;}#mermaid-svg-s3RPIhKsHbkOhXMU .node rect,#mermaid-svg-s3RPIhKsHbkOhXMU .node circle,#mermaid-svg-s3RPIhKsHbkOhXMU .node ellipse,#mermaid-svg-s3RPIhKsHbkOhXMU .node polygon,#mermaid-svg-s3RPIhKsHbkOhXMU .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-s3RPIhKsHbkOhXMU .node .label{text-align:center;}#mermaid-svg-s3RPIhKsHbkOhXMU .node.clickable{cursor:pointer;}#mermaid-svg-s3RPIhKsHbkOhXMU .arrowheadPath{fill:#333333;}#mermaid-svg-s3RPIhKsHbkOhXMU .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-s3RPIhKsHbkOhXMU .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-s3RPIhKsHbkOhXMU .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-s3RPIhKsHbkOhXMU .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-s3RPIhKsHbkOhXMU .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-s3RPIhKsHbkOhXMU .cluster text{fill:#333;}#mermaid-svg-s3RPIhKsHbkOhXMU .cluster span{color:#333;}#mermaid-svg-s3RPIhKsHbkOhXMU div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-s3RPIhKsHbkOhXMU :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

字符串信息类型
判断信息类型
确定元字符
正则化提取信息
字符串信息位置

以下为一个例子, 取自国赛2021B表一的部分数据:

我们需要从114个字符串的值提取五个指标:
(1)Co/SiO2的质量
(2)Co负载量,"1wt% O2"意味着钴Co与SiO2的重量之比为1:100
(3)HAP的质量
(4)乙醇浓度,这里的浓度表述有待商榷,应为乙醇的注入速率
(5)Co/SiO2和HAP装料比

我们需要确定元字符来提取字符串中的信息。

元字符

元字符 含义
\d 代表数字字符
\w 代表单词字符,即所有的英文字符,数字,加上下划线
\s 代表空白符
\D 代表非数字字符
\W 代表单词字符
\S 代表非空白符
.* 代表任意字符
^ 匹配行首
$ 匹配行尾

因为表单中数字偏多,我们先考虑元字符\d ,搜索字符串如图:

”\d+"中的加号表示出现一次以上的字符,共能提取六个字符,我们需要提取第1、2、4的数字,代码如下:

 pattern = '(\d+)';matches = regexp(ss, pattern, 'tokens');        dd(ii,1)=str2double(matches{1});dd(ii,2)=str2double(matches{2});dd(ii,3)=str2double(matches{4});

乙醇浓度我们用元字符.* ,取两数字中有符号"."的部分,也可以取乙醇浓度和ml/min中所有字符都可以得到乙醇值,代码部分如下:
正则化形式:

代码:

 pattern = '(\d\.\d+)';  matches = regexp(ss, pattern, 'tokens');dd(ii,4) = str2double(matches{1});

和:
正则化形式:

代码:

 pattern = '乙醇浓度(.+)ml/min';  %  .可以匹配任何单个字符,包括空白matches = regexp(ss, pattern, 'tokens');dd(ii,4) = str2double(matches{1});

MATLAB正则表达式函数

什么是正则表达式?
正则表达式是一串用于定义某种模式的字符。在有些情况下(例如,在解析程序输入或处理文本块时),通常会使用正则表达式在文本中搜索与该模式匹配的一组单词。

有四个 MATLAB函数支持使用正则表达式搜索和替换字符。前三个函数在接受的输入值和返回的输出值方面类似。

函数 说明
regexp 用于对字符串进行查找,大小写敏感。
regexpi 匹配正则表达式并忽略大小写。
regexprep 用于对字符串进行查找并替换。
regexptranslate 将文本转换为正则表达式。

我们使用函数regexp,匹配正则表达式。
调用前三个函数中的任何一个函数时,请在前两个输入参数中传递要解析 的文本以及正则表达式。调用 regexprep 时,还需再传递一个额外的输入,该输入是一个表达式,用于指定替代的模式。

完整代码如下:

clc,clear
load A;
chj=A;
n = length(chj);
dd = nan(n,5);
for ii = 1:nss = chj(ii);
%         正则表达式可代替
% 200mg 1wt%Co/SiO2- 200mg HAP-乙醇浓度1.68ml/minpattern = '(\d+)';matches = regexp(ss, pattern, 'tokens');        dd(ii,1)=str2double(matches{1});dd(ii,2)=str2double(matches{2});dd(ii,3)=str2double(matches{4});
%         pattern = '乙醇浓度(.+)ml/min';  %    .可以匹配任何单个字符,包括空白
%         matches = regexp(ss, pattern, 'tokens');
%         dd(ii,4) = str2double(matches{1});pattern = '(\d\.\d+)';  %  .可以匹配任何单个字符,包括空白
%         \d\.\d+matches = regexp(ss, pattern, 'tokens');dd(ii,4) = str2double(matches{1});dd(ii,5) =dd(ii,1)/dd(ii,3);
end

原字符串为:
 

其中提取的数据如图:
 

代码链接

https://pan.baidu.com/s/1tpDafzTxkYx3Qe2RUy48Ow
提取码:6z1p
结束——————————————————————
(后面为用到正则化的例子供大家参考)

补充的例子

例子一(matlab把stata格式写为latex格式)

问题描述

我们需要一个代码把stata复制的数据修改为latex的格式,避免一个个粘贴麻烦的情况。
把:

变为:(负号还未加)

之后粘贴如txt文件去除""即可。

代码实现

clc,clear
opts = spreadsheetImportOptions("NumVariables", 1);
opts.Sheet = "Sheet6";
opts.DataRange = "A1:A7";
opts.VariableNames = "VarName1";
opts.VariableTypes = "string";
opts = setvaropts(opts, "VarName1", "WhitespaceRule", "preserve");
opts = setvaropts(opts, "VarName1", "EmptyFieldRule", "auto");
A = readmatrix("正则化.xlsx", opts, "UseExcel", false);
clear optsc=zeros(7,5);for i=1:7for j=1:5
a=A(i);
ss=a;pattern = '(\d+.\d+)';  matches = regexp(ss, pattern, 'tokens');k=length(matches);if k<5if j==5b=0;elseb = str2double(matches{j});endelseb = str2double(matches{j});end
c(i,j)=b;endend
d=c;
ii=d>=1000
d(ii) = c(ii)/(1.0e+07);d(:,[3 4 5])=d(:,[5 3 4]);%交换两列的位置d = round(d,4);
name=["花菜类" "花叶类" "辣椒类" "茄类" "食用菌" "水生根茎类"  "常数"]';
e="&"+name+"&"+d(:,1)+"&"+d(:,2)+"&"+d(:,3)+"&"+d(:,4)+"&"+d(:,5)+"\\";

matlab正则表达式(附数+代码)相关推荐

  1. 自适应滤波器设计及matlab实现,自适应滤波器设计及Matlab实现附程序代码

    自适应滤波器设计及Matlab实现附程序代码 维纳自适应滤波器设计及 Matlab 实现摘 要本文从随机噪声的特性出发,分析了传统滤波和自适应滤波基本工作原理和性能,以及滤波技术的现状和发展前景.然后 ...

  2. matlab滤波器 代码,自适应滤波器设计及Matlab实现附程序代码整理版.doc

    自适应滤波器设计及Matlab实现附程序代码整理版.doc 维纳自适应?滤波器设计?及Matl?ab实现 摘 要 本文从随机?噪声的特性?出发,分析了传统?滤波和自适?应滤波基本?工作原理和?性能,以 ...

  3. 北京房租大涨?6个维度,数万条数据帮你揭穿(附详情代码)

    作者|丁彦军 来源|恋习Python 昨天还幻想海边别墅的年轻人,今天可能开始对房租绝望了. 8月初,有网友在"水木论坛"发帖控诉长租公寓加价抢房引起关注.据说,一名业主打算出租自 ...

  4. 基于蝗虫(蚱蜢)优化算法优化的支持向量机分类模型及其MATLAB实现-附代码

    基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 文章目录 基于蝗虫(蚱蜢)优化算法GOA优化的支持向量机分类模型SVM及其MATLAB实现-附代码 1. 模型 ...

  5. 基于MATLAB的三维数据插值拟合与三次样条拟合算法(附完整代码)

    目录 一. 三维插值 例题1 二. 高维度插值拟合 格式一 格式二 格式三 格式四 格式五 例题2 三. 单变量三次样条插值 例题3 例题4 四. 多变量三次样条插值 例题6 一. 三维插值 首先三维 ...

  6. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  7. python 双目视觉_球体的双目视觉定位(matlab,附代码)

    球体的双目视觉定位(matlab,附代码) 标签(空格分隔): 机器视觉 引言 双目视觉定位是我们的一个课程设计,最近刚做完,拿出来与大家分享一下,实验的目的是在拍摄的照片中识别球体,并求出该球体到相 ...

  8. 基于MATLAB的二维与三维插值拟合运算(附完整代码)

    · 一. 一维插值 interp1函数在上个博客中(如下链接)已经更新了,此处再补充两个相关例题. 基于MATLAB的数据插值运算:Lagrange与Hermite算法(附完整代码)_唠嗑!的博客-C ...

  9. matlab中多元线性回归regress函数精确剖析(附实例代码)

    matlab中多元线性回归regress函数精确剖析(附实例代码) 目录 前言 一.何为regress? 二.regress函数中的参数 三.实例分析 总结 前言 regress函数功能十分强大,它可 ...

  10. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

最新文章

  1. 框架开发与编程模式编程思想的结合
  2. yii 使用 有赞sdk_有赞移动如何做到并行灰度的复杂场景?
  3. 同步异步单线程多线程初级理解
  4. P1081 开车旅行 倍增 洛谷
  5. cfile清空文件内容_体育老师学编程(第11天)python常用的文件读写操作
  6. [转]el-table表格翻页后仍记忆所选项
  7. PPT画得图转为矢量图eps
  8. 麻省理工学院计算机科学与工程博士,2020美国麻省理工大学计算机科学博士专排...
  9. 任意图像转素描:Python分分钟实现
  10. 怎么在服务器解压文件,云服务器怎么解压文件
  11. HttpServletResponse
  12. 淘宝商品详情APi接口(原数据APP、h5)
  13. 【copy】也说嵌入式系统架构设计(linux 平台)
  14. Oracle DBA面试突击题
  15. sequoia负载均衡
  16. 下载refseq序列
  17. 上海现有电视频道分配表
  18. 波动方程的行波解(二)| 半直线上的问题——延拓法 | 偏微分方程(十)
  19. python使用ddt_python数据驱动ddt的使用
  20. 深度学习中的单阶段小目标检测方法综述

热门文章

  1. 输入一些整数,编程计算并输出其中所有正数的和,输入负数或零时表示输入数据结束。输出正数的和以及正数的项目。
  2. 西电数据挖掘实验三 关联规则挖掘 投票记录
  3. Android之“观察者模式”解析及实际应用:应用宝软件下载中 进度条同步更新
  4. input 警告[DOM] Input elements should have autocomplete attributes (suggested: new-password)
  5. 基于高分遥感影像的车道级高精地图生成模型跑通了
  6. iphone如何查看dns延迟_iphone – 如何在iOS上执行DNS查询
  7. CKAD考试实操指南(四)—— 优雅设计:掌握Pod设计技巧
  8. UE4 C++中字符串的处理
  9. 中国梅森砂市场规模状况与竞争策略分析报告2022-2028年
  10. JSP+MySQL基于ssm的主题酒店管理系统