我正在为React教程构建自己的语法荧光笔。目前,我正在尝试在导入时捕获变量分配和非结构化属性。
我能够像这样捕获单个变量分配...
代码:import React from 'react';
regex:/(?<=\b(import|export|default)\s)(\w+)/gm
捕获:React
但是,当尝试使用结构化属性捕获该行时,它会失败,并且我遇到了无法预料的问题。
示例
代码:import React, { useState, useEffect } from 'react';
捕获:React
我需要捕获React
,useState
和useEffect
,但不是 ,
,{
或{{1 }}。
Regex不是我的强项,我不确定如何问这个问题以获得正确的答案。任何帮助将不胜感激。
答案 0 :(得分:0)
(?<=\b(import|export|default)(\w|\s|\,|\{|\}|\*)*)(\w+)(?=.*from)
逐行:
(?<=\b /*positive lookbehind*/
(import|export|default) /* for the statements */
(\w|\s|\,|\{|\}|\*)* /* and for all kinds of chars inbetween */
)(\w+) /* the word */
(?=.*from) /* positive lookahead for "from" */