MATLAB中regexprep函数用法

news/2025/2/28 21:47:58/

目录

语法

说明

示例

更新的文本

在替代文本中包括词元

在替代文本中包括动态表达式

更新多段文本

保留原始文本中的大小写

替换零长度匹配项


        regexprep函数的功能是使用正则表达式替换文本。

语法

newStr = regexprep(str,expression,replace)
newStr = regexprep(str,expression,replace,option1,...optionM)

说明

​newStr= regexprep(str,expression,replace) 将 str 中与 expression 匹配的文本替换为 replace 描述的文本。regexprep 函数在 newStr 中返回更新的文本。​

  • 如果 str 是一段文本(字符向量或字符串标量),则 newStr 也是一段相同类型的文本。即使 expression 或 replace 是字符向量元胞数组或字符串数组,newStr 也是一段文本。当 expression 为元胞数组或字符串数组时,regexprep 将第一个表达式应用于 str,然后将每个后续表达式应用于前面的结果。

  • 如果 str 是元胞数组或字符串数组,则 newStr 是与 str 具有相同维度的元胞数组或字符串数组。对于 str 的每个元素,regexprep 函数按顺序应用各表达式。

  • 如果不存在与 expression 的匹配项,则 newStr 等同于 str。

newStr= regexprep(str,expression,replace,option1,...optionM) 使用指定的选项修改搜索。例如,指定 'ignorecase' 以执行不区分大小写的匹配。

示例

更新的文本

        替换以 M 开头和以 y 结尾且其中至少有一个字符的单词。

str = 'My flowers may bloom in May';
expression = 'M(\w+)y';
replace = 'April';newStr = regexprep(str,expression,replace)
newStr = 
'My flowers may bloom in April'

在替代文本中包括词元

        通过在词元中捕获紧随 'walk' 的字母来替换短语 'walk up' 的变体。

str = 'I walk up, they walked up, we are walking up.';
expression = 'walk(\w*) up';
replace = 'ascend$1';newStr = regexprep(str,expression,replace)
newStr = 
'I ascend, they ascended, we are ascending.'

在替代文本中包括动态表达式

        使用 upper 函数将句子开头的小写字母替换为其大写形式。

str = 'here are two sentences. neither is capitalized.';
expression = '(^|\.)\s*.';
replace = '${upper($0)}';newStr = regexprep(str,expression,replace)
newStr = 
'Here are two sentences. Neither is capitalized.'

        该正则表达式匹配紧随字符向量 (^) 开头的单个字符 (.) 或句点 (\.) 和任何空白 (\s*)。replace 表达式调用 upper 函数以获取当前匹配的字符 ($0)。

更新多段文本

        将一组字符向量中的每个双重复字母替换为符号 '--'

str = {                                 ...
'Whose woods these are I think I know.' ; ...
'His house is in the village though;'   ; ...
'He will not see me stopping here'      ; ...
'To watch his woods fill up with snow.'};expression = '(.)\1';
replace = '--';
newStr = regexprep(str,expression,replace)
newStr = 4x1 cell{'Whose w--ds these are I think I know.'}{'His house is in the vi--age though;'  }{'He wi-- not s-- me sto--ing here'     }{'To watch his w--ds fi-- up with snow.'}

保留原始文本中的大小写

        在查找匹配项时忽略正则表达式中的字母大小写,但在更新时模拟原始文本的字母大小写。

str = 'My flowers may bloom in May';
expression = 'M(\w+)y';
replace = 'April';newStr = regexprep(str,expression,replace,'preservecase')
newStr = 
'My flowers april bloom in April'

替换零长度匹配项

        使用 '^' 运算符在字符向量开头插入文本,这将返回零长度匹配项,以及 'emptymatch' 关键字。

str = 'abc';
expression = '^';
replace = '__';newStr = regexprep(str,expression,replace,'emptymatch')
newStr = 
'__abc'

参数说明

str — 要更新的文本

        要更新的文本,指定为字符向量、字符向量元胞数组或字符串数组。

expression — 正则表达式

        正则表达式,指定为字符向量、字符向量元胞数组或字符串数组。每个表达式可包含字符、元字符、运算符、词元和用于指定在 str 中匹配的模式的标志。

replace — 替代文本

替代文本,指定为字符向量、字符向量元胞数组或字符串数组,如下所示:

  • 如果 replace 为单个字符向量且 expression 为字符向量元胞数组,则 regexprep 对每个表达式使用相同的替代文本。

  • 如果 replace 为 N 字符向量的元胞数组且 expression 为单个字符向量,则 regexprep 尝试 N 次匹配和替代。

  • 如果 replace 和 expression 均为字符向量元胞数组,则它们必须包含相同数量的元素。regexprep 将每个 replace 元素与 expression 中与其匹配的元素配对。

option — 搜索或替代选项

        搜索或替代选项,指定为一个字符向量或整数值。

newStr — 更新的文本

        更新后的文本,以字符向量、字符向量元胞数组或字符串数组的形式返回。newStr 的数据类型与 str 的数据类型相同。


http://www.ppmy.cn/news/1575600.html

相关文章

JavaScript设计模式 -- 外观模式

外观模式(Facade Pattern)是一种设计模式,用于为复杂的子系统提供一个简单的接口,以减少子系统间的依赖和复杂性。在 JavaScript 中实现外观模式,通常是为了提供一个统一的接口来简化客户端与多个子系统交互的过程。 外…

游戏引擎学习第126天

仓库:https://gitee.com/mrxiao_com/2d_game_3 单生产者/多消费者问题 在今天的讨论中,主要与多线程编程有关。问题出现在多线程环境中,当多个线程同时访问共享资源时,代码没有正确处理竞争条件,导致了错误的行为。 具体问题发…

Vscode编辑器获取更新远程最新分支

解决:打开当前项目的终端,输入 git remote update origin --prune # 查看远程分支 git branch -r --prune --prune 参数告诉 Git 清理那些远程仓库中已经删除但本地仍然存在的跟踪分支。 命令作用 更新远程仓库引用: git remote update …

我是如何从 0 到 1 找到 Web3 工作的?

作者:Lotus的人生实验 关于我花了一个月的时间,从 0 到 1 学习 Web3 相关的知识和编程知识。然后找到了一个 Web3 创业公司实习的远程工作。 👇👇👇 我的背景: 计算机科班,学历还可以(大厂门槛水平) 毕业工…

大学专业01-资源勘查工程专业

资源勘查工程(油气与清洁地质能源)专业分析 一、专业前景 核心优势 国家战略需求驱动 服务于“双碳”目标,聚焦油气勘探与清洁能源开发(如CO₂地质封存、地热开发等),契合能源转型趋势5,7,11。 学科实力…

数据的“潘多拉魔盒”:大数据伦理的深度思考

数据的“潘多拉魔盒”:大数据伦理的深度思考 在大数据的世界里,数据是一种“新石油”,它能驱动商业、优化决策、甚至预测未来。但就像电影里的“潘多拉魔盒”,数据一旦被滥用,便可能引发严重的道德和伦理问题。大数据…

Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境

文章目录 一、VSCode配置Node.js运行环境 1、软件安装2、安装Node.js插件3、配置VSCode4、创建并运行Node.js文件5、调试Node.js代码 一、VSCode配置Node.js运行环境 1、软件安装 安装下面的软件: 安装Node.js:Node.js官网 下载Node.js安装包。建议选…

白帽黑客系列教程之Windows驱动开发(64位环境)入门教程(九)

为什么要写这篇文章呢? 作为一名白帽黑客,如果想要学习ROOTKIT攻防技术,就必须要有能力进行驱动开发! 本文章仅提供学习,切勿将其用于不法手段! 在Windows操作系统的64位环境中,进行ROOTKIT攻…