我有以下文本行,我需要在$$
中查找内容,并提取id=
和description=
的值。
您能指出我正确的方向吗,我尝试了几次都没有成功(实际上我尝试过这个^\$\$(.*?)\$\$
)
$$id=uniq_id&description=some_description$$ Any text after
// result should be: ['uniq_id', 'some_description', 'Any text after']
$$id=uniq_id$$ Any text after
// result should be: ['uniq_id', '', 'Any text after']
Any text after
// result should be: ['','','Any text after']
答案 0 :(得分:2)
诸如
的模式\$\$(?:id=(\w+))?(?:&description=(\w+))?
应该为此工作。
答案 1 :(得分:0)
您使用1个捕获组(.*?)
在$$
和$$
之间进行捕获。
如果id
应该存在并且描述是可选的,则可以使用3个捕获组,其中与描述匹配的部分是可选的:
^\$\$id=(\w+)(?:&description=(\w+))?\$\$(.*)
const regex = /^\$\$id=(\w+)(?:&description=(\w+))?\$\$(.*)/;
const strings = [
"$$id=uniq_id&description=some_description$$ Any text after",
"$$id=uniq_id$$ Any text after"
];
strings.forEach((s) => {
console.log(s.match(regex));
});