匹配所有字符减去尾部空白,然后匹配大括号之间的字符
match all characters minus trailing whitespace then characters between curly braces
我有一个类似parameter parameter2 {characters}
的字符串,其中可以有任意数量的参数和参数之间的任意数量的空格,然后在参数列表之后有额外的可变数量的空格和大括号之间的字符
我的尝试/(?:([^{]*)'s*)?('{.*'})?/
。
我需要捕获组1为参数parameter2,capture group 2
为{characters}
背景
我有一个发布/订阅模式设置,发布和订阅的"东西"不受我的控制,可以包含任何数量的空格,大括号和其中的内容被解析为json,并作为参数传递给订阅方法。
([^{]*?)'s*('{.*'})
只需使用此功能,即可获得第1组和第2组。请参阅演示。
https://regex101.com/r/zB3hI5/13
var re = /([^{]*?)'s*('{.*'})/gm;
var str = 'parameter parameter2 {characters}'n'n'n';
var m;
while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
正则表达式,您似乎工作得很好,但您需要对结果数组进行切片,以获得您想要的响应,如
var myarray = 'parameter parameter2 {characters}'.match(/(?:([^{]*)'s*)?('{.*'})?/).slice(1)
如果你正在寻找一个不使用切片/拼接的精确阵列,你可以尝试像一样进行拆分
'parameter parameter2 {characters}'.split(/'s+(?={)/)
这应该有效:
(['w+'s*]*)('{'w+)'})
相关文章:
- 如何在jQuery中搜索两个字符之间的字符串
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript-使用Regex获取两个字符之间的字符
- 如何获取特定字符之间的值
- 通过JQuery在网页上的两个字符之间放置空格
- 如果两个波浪号字符之间的字符计数大于60,则在两个波浪字字符之间添加波浪号
- 删除Javascript中特定字符之间的所有内容
- 如何在字符之间进行匹配,但不将它们包含在结果中
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- 如何提取两个字符之间的字符串
- 空格上的正则表达式匹配 - 排除多组字符之间的空格
- 使用正则表达式捕获 2 个特殊字符之间的文本
- 如何在 javascript 中替换两个声明字符之间的字符串
- 正则表达式获取两个字符之间的所有内容
- Javascript - 检测字符串中的某些字符并替换这些字符之间的内容
- Reg ex 表示特定字符之后和其他字符之间的任何内容
- 替换/删除两个字符之间的所有内容
- 确定字符之间的距离
- 如何在 JavaScript 中替换字符串中最后一个出现的两个字符之间的字符
- 如何确定位置是否位于特定字符之间