我正在尝试开发自己的链接语法:
[this is google|google.com]
我知道如何在方括号(\[(.*?)\]
)之间获取文本,但我不确定如何提取单个部分。此外,如果有人想简单地添加没有链接的方括号(例如[this is google]
),则不会将其检测为链接。
任何人都能为我提供一些方向吗?我需要访问这两个部分。
答案 0 :(得分:0)
答案 1 :(得分:0)
你可以使用;
s='[this is google|google.com]';
m = s.match(/\[([^|]+)\|([^\]]+)\]/);
然后使用m[1]
和m[2]
进行说明和链接。
更新:为了显示两种正则表达式方法的性能差异,我创建了2个regex101链接:
.*?
要查看效果差异,请点击两个链接左上角的 Launch regex debugger
链接。
您会注意到我的正则表达式显示:
+匹配1 - 完成11个步骤
但.*?
链接显示了这一点:
+匹配1 - 完成59步
这证明基于否定的正则表达式比.*
方法更有效。
PS:如果您点击 +Match 1 - finished in 59 steps
,您会在第二个链接中看到红色BACKTRACK
消息。
答案 2 :(得分:0)
不是吗?试试这个正则表达式
(\[(.*?)\|?(.*?)\])