我正在尝试使用正则表达式获取第二个单词。
这是我的文字:
@import "vars";
@import "fonts";
@import "global";
@import "dddd";
// ============================
:root {
--fs: 2vw;
}
$red: red;
body {
// @include f500;
font-family: 'Museo Cyrl 500';
font-size: var(--fs);
// font-size: 20px;
line-height: 27px;
font-weight: 300;
color: #838383;
background-color: #ffffff;
}
我想将以下内容放入数组中:
[vars],[fonts],[global],[dddd]
这是我写的:
在一个变量中,str
我写了一个类似的文本进行测试。
我从文件中读取了“上方”的那个文本。
const regexp = /@import\s([^\w])/g;
let str = '@import "vars"; @import "dwada"; dwdw wddwa fgfff aaaaa'
let result = str.matchAll(regexp);
let exit = Array.from(result);
let firstMatch = exit[0];
console.log(firstMatch[0])
但是完全不同的东西又回到了我的脑海:
如何正确地编写这个正则表达式?请告诉我。@import "
组件注册。表达式:
@import
- 从字面上看,这个字符序列\s+
- 至少一个空格字符["']
- 正好一个引号字符(或者"
,或'
)([^"']+)
- 捕获(到第一组)除"
and之外的任何字符'
,至少一个这样的“非引号”字符量词
+
(“一个或多个”)默认情况下是贪婪的,因此输入字符串的“非引号”字符的最大可能数量进入结果捕获组。与空格类似:使用给定的量词,标记\s
将匹配尽可能多的空白字符。表达式的最后一部分是
["'];
可选的,没有它也可以工作:这部分被添加到示例中只是为了更好地理解正则表达式(有了这部分,表达式完全描述了带有指令的语句@import
)。