【Matlab笔记_15】正则表达式之特殊字符文本位置提取

目标:

  • 1.提取"BLT-1-A1.txt "中第一个'-'前面的所有字符。
  • 2.提取"BLT-1-A1.txt "中第一个'- '和第二个'-'中间的所有字符。
  • 3.提取"BLT-1-A1.txt "中最后一个'- '和最后一个'.'中间的所有字符。

方法如下:

1.提取"BLT-1-A1.txt "中第一个'-'前面的所有字符。

复制代码
file_name ='BLT-1-A1.txt';
type = regexp(file_name, '^[^-]+', 'match');

注:

这个正则表达式的含义是匹配从字符串开始(^)到第一个连字符(-)之前的所有字符。这样,它会提取第一个连字符前面的内容。

请注意,这里使用的是 ^ [^-]+,其中:

^:表示匹配字符串的开始。

\^ - \]:表示除了连字符(-)以外的任何字符。 +:表示匹配前面的字符一个或多个。 这个正则表达式会匹配字符串开头的所有非连字符字符,直到遇到第一个连字符为止。 ### 2.提取"**BLT-1-A1.txt** "中第一个'**-** '和第二个'**-**'中间的所有字符。 file_name ='BLT-1-A1.txt'; type = regexp(file_name, '(?<=-)\w+(?=-)', 'match'); (?\<=-): 这是一个正向后顾界定。它表示在匹配的内容之前必须有一个连字符(-)。这个部分不会包含在最终匹配结果中。 \\w+: 这是一个匹配一个或多个单词字符的正则表达式。\\w 表示任何字母、数字或下划线字符,而 + 表示匹配前面的字符一个或多个。 (?=-): 这是一个正向前瞻界定。它表示在匹配的内容之后必须有一个连字符(-)。这个部分不会包含在最终匹配结果中。 'match': 这是 regexp 函数的选项,表示返回与整个正则表达式匹配的字符串。 综合起来,这个正则表达式的目标是匹配文件名中两个连字符(-)之间的单词,并将这个匹配结果存储在变量 type 中。 但是若是文件用有多个-,如'BLT-1-BKGD-A1.txt';,只要第一个和第二个'-'之间的可以如下处理: file_name ='BLT-1-BKGD-A1.txt'; type = regexp(file_name, '(?<=-)\w+(?=-.*-)', 'match'); 这里修改了正则表达式模式: (?\<=-): 仍然是正回顾后界定,表示匹配的内容必须位于一个连字符(-)的后面。 \\w+: 仍然是匹配一个或多个单词字符(字母、数字或下划线)的部分。 (?=-.*-): 新增的部分,这是一个正前瞻后界定,表示匹配的内容必须位于第一个连字符(-)后,并且在该连字符后面存在至少一个任意字符(.* ),然后紧跟着第二个连字符。 这样,整个正则表达式将匹配第一个和第二个连字符之间的内容。 这里使用 .\* 来表示匹配任意字符(除了换行符)。如果想要限定为非连字符的字符,可以使用 \[\^-\]*,其中 \[\^-\] 表示匹配除了连字符以外的任意字符,* 表示匹配零个或多个。 ### 3.提取"**BLT-1-A1.txt** "中最后一个'**-** '和最后一个'**.**'中间的所有字符。 file_name ='BLT-1-A1.txt'; type = regexp(file_name, '[-](\w+)\.', 'tokens', 'once'); '\[-\]': 这是匹配一个连字符(-)的部分。 (\\w+): 这是匹配一个或多个单词字符(字母、数字或下划线)的部分,并使用圆括号将匹配的内容分组。这表示我们对这一部分感兴趣,后续可以通过结果访问。 .: 这是匹配一个点号(.)的部分。由于点号在正则表达式中有特殊含义(匹配任意字符),因此在这里我们使用反斜杠进行转义,表示匹配实际的点号。 'tokens': 这是 regexp 函数的一个选项,用于指定返回的结果形式。在这里,我们使用 'tokens',表示返回匹配项的令牌,也就是正则表达式中用括号分组的部分。 'once': 这是 regexp 函数的另一个选项,表示只返回第一个匹配的结果。因为你可能有多个匹配项,但我们只对第一个感兴趣。 因此,整个代码的作用是从文件名中提取一个连字符后、点号前的单词,并将结果存储在 type变量中。如果没有匹配到符合正则表达式的内容,type将是一个空数组。如果匹配到内容,type 将是一个包含一个单元素的单元格数组,其中包含了匹配的单词。

相关推荐
战术摸鱼大师2 小时前
电机控制(四)-级联PID控制器与参数整定(MATLAB&Simulink)
算法·matlab·运动控制·电机控制
汇能感知3 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun3 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao4 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾4 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT4 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
ST.J5 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin5 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全
小憩-6 小时前
【机器学习】吴恩达机器学习笔记
人工智能·笔记·机器学习
UQI-LIUWJ6 小时前
unsloth笔记:运行&微调 gemma
人工智能·笔记·深度学习