如何使用Matlab /八度regexprep(正则表达式替换)在扩展名前的文件名中添加后缀

费利佩·希门尼斯

说我有这个Matlab或Octave char变量:

>> filename = 'my.file.ext'

我想要一个regexprep命令,在扩展名之前的文件名中添加一个后缀,例如“ _old”,将其转换为“ my.file_old.ext”。

以下内容将所有点替换为“ _old”:

>> regexprep(filename, '\.', '_old.')
ans =
    'my_old.file_old.ext'

什么是仅在最后一个点之前加上“ _old”的regexprep命令?(理想情况下,如果没有点(没有扩展名),请在末尾附加“ _old”。)

先感谢您!

维克多·史翠比维

您可以使用

regexprep(filename, '^(?:(.*)(\.)|(.*))', '$3$1_old$2')

正则表达式演示

细节

  • ^ -字符串开始
  • (?:(.*)(\.)|(.*)) -与两个选项之一匹配的非捕获组:
    • (.*)(\.)-第1组(后向$1引用是指该组的值):尽可能多的零个或多个字符,然后是第2组($2):一个点
    • | - 要么
    • (.*)-第3组($3):尽可能多的零个或多个字符

如果不匹配替代项,则对捕获组的反向引用为空字符串。因此,如果(.*)(\.)匹配,则替换为组1 _old+组2的值。否则,它是第3组+ _old(仅在末尾附加)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用正则表达式获取不带扩展名的文件名

在MATLAB中通过正则表达式从文件名中查找和删除文件扩展名

使用正则表达式提取文件名而无需扩展名的url

如何使用正则表达式匹配不带扩展名的文件名单词?

仅当字符串文件名具有.jpg或.png扩展名时才使用正则表达式替换

正则表达式如何仅匹配文件名前缀和扩展名而忽略 Ruby 中间的数字?

如何通过扩展名使用正则表达式过滤文件,但排除某些文件?

如何在JavaScript中使用正则表达式验证文件扩展名

如何使用正则表达式获取文件扩展名?

如何使用正则表达式拆分文件扩展名

使用正则表达式编辑扩展名

八度-使用正则表达式查找字符串中的单词

使用正则表达式查找以 / 不带某些类型的扩展名结尾的文件

使用正则表达式从String中提取文件扩展名

使用正则表达式查找带有参数给出的扩展名的文件

使用正则表达式获取文件扩展名

我需要使用正则表达式检查文件的扩展名

如何检查文件是否在Bash中具有带正则表达式的扩展名(任何扩展名)?

使用正则表达式在源中获取扩展名,然后是额外的文本

使用正则表达式搜索文件名

使用正则表达式匹配文件名

使用正则表达式提取文件名

Bash使用正则表达式扩展文件名

如何使用正则表达式从bash中的文件名中仅选择数字

cmd:替换文件名的内部(使用正则表达式掩码)

使用cp替换正则表达式模式和文件名的find -name

使用正则表达式替换/删除文件名的特定部分

我可以使用什么正则表达式来匹配和替换多个文件名中的句号?

如何使用正则表达式从文件名中删除字符串“ [xyz]”?