繁体   English   中英

正则表达式匹配方括号内的字符串,用冒号分隔

[英]Regex to match string inside square brackets, separated by colon

我正在尝试解析一个始终具有以下格式的字符串:[firstpart:lastpart],这样我就可以将“ firstpart”和“ lastpart”作为单独的项目来获取。 “ firstpart”值始终是一个字符串,而“ lastpart”值可以包含整数和文本。 整个字符串[firstpart:lastpart]可以被我不需要的其他任何数量的文本包围,因此可以使用方括号。

我一直在尝试修改此:

([^:\s]+):([^:\s]+)

照原样,这让我明白了:

  1. [firstpart:lastpart
  2. [第一部分
  3. 最后部分]

因此,仅是我需要从2和3中删除左括号和右括号。

仅使用正则表达式可能吗? 如果相关的话,我在TinyMCE插件中使用JavaScript。

\\[\\]分别放在正则表达式的开头和结尾,并捕获它们之间的文本:

 console.log( 'foo[firstpart:lastpart]bar'.match(/\\[([^:]+):([^:\\]]+)\\]/) ); 

您可以在组外匹配左括号和右括号:

\\[([az]+):([a-z0-9]+)]

请注意, [^:\\s]+不匹配比一个字符串,一个字符串或整数更多的冒号或空格字符,并且不对开头的\\[进行转义以在字面上进行匹配,否则它将启动一个字符类。

 let str = "[firstpart:lastpart]"; console.log(str.match(/\\[([az]+):([a-z0-9]+)]/i)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM