正则表达式(JS)读取两个符号之间的数据

Regex (JS) read data between two symbols

我的 changelog.md 数据如下所示。

## 11.2.3
* xxx
* xxxx

## 11.2.2
* ttt
* ttt

我需要一个可以 return 仅列出第一个版本的正则表达式,即

* xxx
* xxxx

我尝试了多种解决方案,但没有达到最终结果。

我试过匹配和替换它,没有用。

const changelog = `
## Hello World
* This is a bold text
* This is a bold text

## Hello World
* This is a bold text

## Hello World
* This is a bold text
`;

const final = changelog.match( /([^(##)])(.*)[^(##)]/g );
console.log(final);

您不需要将 ^## 放在 [] 中。方括号是做字符集的,()是分组的。对那部分不感兴趣就不用分组了。

使用 m 修饰符使 ^ 匹配行的开头而不是字符串的开头。然后 .*\n 将匹配该行的其余部分。 [^#]* 将匹配之后的所有内容,直到下一个 #

const changelog = `
## Hello World
* This is a bold text
* This is a bold text

## Hello World
* This is a bold text

## Hello World
* This is a bold text
`;

const final = changelog.match(/^##.*\n([^#]*)/m);
console.log(final[1]);