替换两个词之间的所有内容,包括这个词
Replace everything between two words including this words
如何将此 tt /* a */ pp /* b */ dd
更改为
tt dd
这不包括 a 和 b link
var test = "tt /* a */ pp /* b */ dd";
// expected:
var res = "tt dd";
正则表达式简单吗?
如果你想删除两件事之间的东西,包括那些东西,正则表达式可以很容易地做到这一点:
const str = 'tt /* a */ pp /* b */ dd';
const start = '/\* a \*/';
const end = '/\* b \*/';
const pattern = new RegExp(`${start}.*${end}`, 'g');
const result = str.replace(pattern, '');
console.log(pattern);
console.log(result);
但是有两个问题。
首先是您选择的分隔符。因为它里面有一个 *
,在正则表达式中有特殊的含义,所以你需要确保对它进行转义。如果您选择的分隔符没有正则表达式特有的字符,则不必这样做。
另一个问题与其说是一个问题,不如说是一个需求问题。你想要 tt dd
,但你会得到你描述的 tt dd
(两个 space),因为两个 space 都在你的分隔符之外。
有几种方法可以解决这个问题。一种可能是将两个或多个 space 替换为一个 space:
const str = 'tt dd';
const result = str.replace(/\s+/g, ' ');
console.log(result);
如果 tt
和 dd
不同,这里是一个正则表达式,用于删除这些差异之间的内容:
const re = /\s+.*\/\s+/gm;
let str = `tt /* a */ pp /* b */ dd`;
str = str.replace(re,' ');
console.log(str); // tt dd
// Change tt and dd to aa and bb, instead, for example:
str = `aa /* a */ pp /* b */ bb`;
str = str.replace(re,' ');
console.log(str); // aa bb
如果 tt
和 dd
没有变化,我认为使用正则表达式没有意义;您只需(静态地)将该字符串设置为所需的值。
如何将此 tt /* a */ pp /* b */ dd
更改为
tt dd
这不包括 a 和 b link
var test = "tt /* a */ pp /* b */ dd";
// expected:
var res = "tt dd";
正则表达式简单吗?
如果你想删除两件事之间的东西,包括那些东西,正则表达式可以很容易地做到这一点:
const str = 'tt /* a */ pp /* b */ dd';
const start = '/\* a \*/';
const end = '/\* b \*/';
const pattern = new RegExp(`${start}.*${end}`, 'g');
const result = str.replace(pattern, '');
console.log(pattern);
console.log(result);
但是有两个问题。
首先是您选择的分隔符。因为它里面有一个 *
,在正则表达式中有特殊的含义,所以你需要确保对它进行转义。如果您选择的分隔符没有正则表达式特有的字符,则不必这样做。
另一个问题与其说是一个问题,不如说是一个需求问题。你想要 tt dd
,但你会得到你描述的 tt dd
(两个 space),因为两个 space 都在你的分隔符之外。
有几种方法可以解决这个问题。一种可能是将两个或多个 space 替换为一个 space:
const str = 'tt dd';
const result = str.replace(/\s+/g, ' ');
console.log(result);
如果 tt
和 dd
不同,这里是一个正则表达式,用于删除这些差异之间的内容:
const re = /\s+.*\/\s+/gm;
let str = `tt /* a */ pp /* b */ dd`;
str = str.replace(re,' ');
console.log(str); // tt dd
// Change tt and dd to aa and bb, instead, for example:
str = `aa /* a */ pp /* b */ bb`;
str = str.replace(re,' ');
console.log(str); // aa bb
如果 tt
和 dd
没有变化,我认为使用正则表达式没有意义;您只需(静态地)将该字符串设置为所需的值。