我正在尝试解析一个始终具有以下格式的字符串:[firstpart:lastpart],这样我就可以将“ firstpart”和“ lastpart”作为单独的项目来获取。 “ firstpart”值始终是一个字符串,而“ lastpart”值可以包含整数和文本。整个字符串[firstpart:lastpart]可以被我不需要的其他任何数量的文本包围,因此可以使用方括号。
我一直在尝试修改此内容:
([^:\s]+):([^:\s]+)
就这样,这让我明白了:
所以我只需要从2和3中除去开括号和闭括号。
仅使用正则表达式可能吗?如果相关的话,我在TinyMCE插件中使用JavaScript。
答案 0 :(得分:3)
分别在正则表达式的开头和结尾处放置\[
和\]
,并捕获它们之间的文本 :
console.log(
'foo[firstpart:lastpart]bar'.match(/\[([^:]+):([^:\]]+)\]/)
);
答案 1 :(得分:1)
您可以在组外匹配左括号和右括号:
请注意,[^:\s]+
不能匹配比一个字符串或一个字符串或整数更多的冒号或空格字符,并且不能使开头的\[
逸出以与之匹配,否则它将开始一个字符类
let str = "[firstpart:lastpart]";
console.log(str.match(/\[([a-z]+):([a-z0-9]+)]/i));