正面观察的替代方案

时间:2016-12-08 18:29:42

标签: javascript regex

我试图使用正则表达式解析C代码的某些部分,例如:

    }StructureTypeDef;
         AnotherType    HwChannelType;

我想要匹配的是“}”符号之后的“StructureTypeDef”(但不包括它),我知道我可以使用

(?<=\})\s*\w+

但问题是js不支持最后一个声明。有人可以帮忙吗?

编辑:感谢大家的答案,但我应该告诉我只需要使用正则表达式来实现这一点,因为解析不允许提取字符串,所以我需要上面显示的正则表达式的等价我试过很多方面,但没有成功。

3 个答案:

答案 0 :(得分:1)

您可以将它放在一个组中(使用())并仅获取该组的内容(在本例中为第一组 - [1]):

code.match(/}\s*(\w+)/)[1] // => "StructureTypeDef" 

答案 1 :(得分:1)

您可以在正则表达式中使用capturing group并获取捕获的值。

var str = `}StructureTypeDef;
         AnotherType    HwChannelType;`;

console.log(str.match(/\}\s*(\w+)/)[1])

答案 2 :(得分:0)

我会使用以下模式:

}\s*(\w+)\s*;

这会为您提供一个或多个单词&#39; };

中的字符

索引1 会为您提供"StructureTypeDef"。 索引0将为您提供完整捕获的字符串。

text.match(/}\s*(\w+)\s*;/)[1]