常规Expresion从fileName查找空格和方括号,不带扩展名

问题描述

我正在使用javascript,这是我的字符串

let filename1 = "excluder version(1).pdf"

注意:扩展名将是动态的,例如jpg或png

我想用结果替换字符串 如果使用正则表达式该怎么办?

结果或预期结果:

filename = "excluder-version-1.pdf"

解决方法

您可以使用regex [^ a-z0-9] + ,它将用数字替换数字和小字母之外的所有元素。 您也可以使用子字符串获取扩展名,然后再将其添加到最终结果中。

let filename1 = "excluder version(1).pdf"
var extension = filename1.substring(filename1.indexOf('.')+1)
var filename = filename1.substring(0,filename1.indexOf('.'))
filename=filename.replace(/[^a-z0-9]+/g," ").trim().split(" ").join("-")+"."+extension;

console.log(filename)

,

您可以尝试!

let filename1 = "excluder version(1).pdf"
let re = /(\w+)\s(\w+)\((\d+)\)\.(pdf|jpg|png)/;


const matches = filename1.match(re).slice(1);
const newstr = matches.reduce((acc,curr,index) => {
  if (index === matches.length - 1) {
    return acc + '.' + curr;
  }
  return acc + '-' + curr;
});

console.log(newstr);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...