我试图使用正则表达式解析C代码的某些部分,例如:
}StructureTypeDef;
AnotherType HwChannelType;
我想要匹配的是“}”符号之后的“StructureTypeDef”(但不包括它),我知道我可以使用
(?<=\})\s*\w+
但问题是js不支持最后一个声明。有人可以帮忙吗?
编辑:感谢大家的答案,但我应该告诉我只需要使用正则表达式来实现这一点,因为解析不允许提取字符串,所以我需要上面显示的正则表达式的等价我试过很多方面,但没有成功。
答案 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]