正则表达式(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]);
我的 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]);