[英]Regex to match string inside square brackets, separated by colon
我正在尝试解析一个始终具有以下格式的字符串:[firstpart:lastpart],这样我就可以将“ firstpart”和“ lastpart”作为单独的项目来获取。 “ firstpart”值始终是一个字符串,而“ lastpart”值可以包含整数和文本。 整个字符串[firstpart:lastpart]可以被我不需要的其他任何数量的文本包围,因此可以使用方括号。
我一直在尝试修改此:
([^:\s]+):([^:\s]+)
照原样,这让我明白了:
因此,仅是我需要从2和3中删除左括号和右括号。
仅使用正则表达式可能吗? 如果相关的话,我在TinyMCE插件中使用JavaScript。
将\\[
和\\]
分别放在正则表达式的开头和结尾,并捕获它们之间的文本:
console.log( 'foo[firstpart:lastpart]bar'.match(/\\[([^:]+):([^:\\]]+)\\]/) );
您可以在组外匹配左括号和右括号:
请注意, [^:\\s]+
不匹配比一个字符串,一个字符串或整数更多的冒号或空格字符,并且不对开头的\\[
进行转义以在字面上进行匹配,否则它将启动一个字符类。
let str = "[firstpart:lastpart]"; console.log(str.match(/\\[([az]+):([a-z0-9]+)]/i));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.