我的示例文本
[10.5] : [G D/F#]
[21.5] : [D F G] => It's too late
[26.5] : [D Em A] => It's now done
我想替换(删除)包含和弦名称的括号外的所有内容。
我知道如何选择/[^\[\]]+([a-zA-Z\#])/g
第一行选择
G D/F#
第二行选择
D F G => It's too late
第三行选择
D Em A => It's now done
在那里,我想要输出(逐行逐行)
G D/F#
D F G
D Em A
如何反转我的正则表达式,因此它应该选择[D F G]
内的和弦名称替换外面的所有内容?
答案 0 :(得分:3)
拆分它,第二个索引将有你想要的。在那里搜索括号。
perl -i -p -e 's/(?<!\x22|\x27)([A-Z][a-z0-9]++)(?!\s|,|\))/\L\1_/g; s/(_)+([A-Z])?/\L\1\2/g' file
答案 1 :(得分:3)
例如,您可以使用match与此正则表达式\[([A-Za-z\s\d#/]+)\]
一起返回您要查找的值。
<强>解释强>
\[
(
[A-Za-z\s\d#/]+
)
\]
var lines = [
"[10.5] : [G D/F#]",
"[21.5] : [D F G] => It's too late",
"[26.5] : [D Em A] => It's now done",
"[26.5] : [A7/13] => text",
"[26.5] : [Asus4] => text",
"[26.5] : [Am6] => text"
];
for (var i = 0; i < lines.length; i++) {
var pattern = /\[([A-Za-z\s\d#/]+)\]/;
var result = lines[i].match(pattern)[1];
console.log(result);
}