匹配括号之间的所有内容
match everything between brackets
本文关键字:之间 更新时间:2023-09-26
我需要匹配两个方括号之间的文本。很多帖子都是关于它的,但没有得到JavaScript的支持,因为它们都使用了lookbacking。文本如下
"{代码}-{描述}"
我需要代码和说明与括号外匹配我得到的最接近的是这个
/{(['s'S]*?)(?=})/g
给我留下了"{Code"answers"{Description"执行子字符串。
所以。。。有没有一种方法可以在Javascript中实现查找类型的功能?
您可以简单地尝试以下regex,
[^}{]+(?=})
代码:
> "{Code} - {Description}".match(/[^}{}]+(?=})/g)
[ 'Code', 'Description' ]
将其用作:
input = '{Code} - {Description}';
matches = [], re = /{(['s'S]*?)(?=})/g;
while (match = re.exec(input)) matches.push(match[1]);
console.log(matches);
["Code", "Description"]
实际上,在这种特殊情况下,解决方案非常简单:
s = "{Code} - {Description}"
result = s.match(/[^{}]+(?=})/g) // ["Code", "Description"]
你有没有尝试过这样的东西,它不需要前瞻或落后:
{([^}]*)}
您可能需要添加全局标志,但它似乎在regex测试仪中有效。
真正的问题是,您需要指定要捕获的内容,这可以通过正则表达式中的捕获组来实现。括号内匹配正则表达式的部分将是捕获组返回的值。因此,为了从结果中省略{
和}
,只需不将它们包含在括号内即可。然而,在正则表达式中匹配它们仍然是必要的。
您可以在这里看到如何在JavaScript中获取捕获组的值。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- d3中堆栈函数和嵌套函数之间的差异
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 操作放置在画布上的元素之间的连接
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- jquery在表单之间切换
- Nodejs API控制器,用于在API之间切换
- 如何在aspx页面之间传递参数
- 在索引.html和应用.js [node.js] 之间共享变量
- 什么是&&在没有if的行中的变量之间
- DOM元素和angular元素之间的主要区别是什么
- DataTables在表之间移动行