正则表达式字符串拆分为多个条件
Regex string split with multiple conditions
(Javascript 旧版本 Node.js)
编辑我必须清理我想要的东西。
我有多条这样的线
var name1;
CONST name2
Let nam;
leT nam
VAr n1 ;
我想要的输出是
name1
name2
nam
nam
n1
所以我正在尝试这样的代码。
/[^;]*/
但我需要帮助,因为我有多种模式。有些变量名后面可能有semicolons/space/null,我需要省略那些。
使用regexp = /name[1-9]+/g
let arr = ['var person;', 'CONST name2', ' Let nam;', ' VAr n1 ;'];
var result = [];
for(var s of arr) {
var split_array = s.replace(/ +/g, ' ').trim().split(' ');
result.push(split_array[1].replace(';', ''))
}
console.log(result);
使用/(?<=(var\s+)|(let\s+)|(const\s+))(\w+)/gim
let data = `
var name1;
CONST name2
Let nam;
leT nam
VAr n1 ;
`;
data = data.match(/(?<=(var\s+)|(let\s+)|(const\s+))(\w+)/gim);
console.log(data); // [ 'name1', 'name2', 'nam', 'nam', 'n1' ]
(Javascript 旧版本 Node.js)
编辑我必须清理我想要的东西。
我有多条这样的线
var name1;
CONST name2
Let nam;
leT nam
VAr n1 ;
我想要的输出是
name1
name2
nam
nam
n1
所以我正在尝试这样的代码。
/[^;]*/
但我需要帮助,因为我有多种模式。有些变量名后面可能有semicolons/space/null,我需要省略那些。
使用regexp = /name[1-9]+/g
let arr = ['var person;', 'CONST name2', ' Let nam;', ' VAr n1 ;'];
var result = [];
for(var s of arr) {
var split_array = s.replace(/ +/g, ' ').trim().split(' ');
result.push(split_array[1].replace(';', ''))
}
console.log(result);
使用/(?<=(var\s+)|(let\s+)|(const\s+))(\w+)/gim
let data = `
var name1;
CONST name2
Let nam;
leT nam
VAr n1 ;
`;
data = data.match(/(?<=(var\s+)|(let\s+)|(const\s+))(\w+)/gim);
console.log(data); // [ 'name1', 'name2', 'nam', 'nam', 'n1' ]