const input =`title: This is from YAML
Location: [La Mia Mamma](geo:51.485978,-0.1721193)
content:
- item:
Foo bar
Location: [Mia Mamma!](geo:51.123456,-0.16666)
content:
- item:
Foo bar
`;
let result = input.replace(/^(Location: *)[^(]*\(geo:([^)]*)\)/gm, '$1$2');
console.log(result);
1条答案
按热度按时间brvekthn1#
你没有提供一个YAML文件的例子,所以我在这里提供一个例子,但我有点在黑暗中摸索。一个简单的正则表达式可以根据需要更改位置行:
正则表达式的解释:
^
-字符串的开始(由于m
标志,此处为行(Location: *)
-捕获组1:文字Location:
[^(]*
-扫描除(
之外的所有对象\(geo:
-应为文本(geo:
([^)]*)
-捕获组2:扫描除)
以外的所有内容\)
-文字)
gm
-全局匹配(多次)的标志,并使regex使用换行符作为字符串开始和结束的分隔符$1$2
-替换为捕获组1,后跟捕获组2