我需要更改marked.js
图片表达式。
原始表达式为:/^\!?\[(inside)\]\(href\)(\w*\S*)*/
---> ![]()
我需要获取所有图像的id,所以我需要转换表达式以从中获取id值----&gt; {>"id"<}![inside](href)
。
我尝试将表达式更改为:/^\{\>index\>\}\!?\[(inside)\]\(href\)(\w*\S*)*/
在thar之后,我需要编写一个表达式来获取{>index<}![inside](href)
内部和外部的例子HREF:
inline._inside = /(?:\[[^\]]*\]|[^\[\]]|\](?=[^\[]*\]))*/;
inline._href = /\s*<?([\s\S]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;
inline._index = /(?:^\{\>[^\<\}]*\<\}|[^\{\>\<\}]|\<\}(?=[^\{\>]*\<\}))/; // I tryed this, but not works
//replacing
inline.link = replace(inline.link)
('inside', inline._inside)
('href', inline._href)
('index', inline._index)
();
任何人都可以帮我构建这个表达式吗?
答案 0 :(得分:1)
如果我做对了,你想从具有某种特定格式的链接中获取一些数据,例如{>"id"<}![inside](href)and_the_rest
。
因此,best regex I can suggest目前看起来像{>([^<]*)<}\!?\[([^]]+)\]\(([^)]*)\)(\w*\S*)*
。它假设您在>
和<
内有“id”,“inside”位于[
和]
内,而“href”位于(
内且{ {1}}一个接一个。
)
function FindValues(str) {
var re = /\{\>([^<]*)\<\}\!?\[([^\]]+)\]\(([^\)]*)\)(\w*\S*)*/;
var m;
if ((m = re.exec(str)) !== null)
{
return [m[1], m[2], m[3], m[4]];
}
}
var vls = FindValues('{>"id"<}![inside](href)and_the_rest');
document.getElementById('id').innerHTML = "ID: " +vls[0] + "<br>INSIDE: " + vls[1] + "<br>HREF: " + vls[2] + "<br>REST: " + vls[3];