regex 如何在正则表达式中使用循环变量[duplicate]

m1m5dgzv  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(157)
    • 此问题在此处已有答案**:

How do you use a variable in a regular expression?(27个答案)
22小时前关门了。
我正在尝试迭代字典列表(键:labelname和id),并希望使用regex获得标签值后面的字符串

text = "Company Name: ABC \n Address: 123St, LA \n Post Code: 12345 \n"
const itemList = [
  { id: 'companyName', label: 'Case or Reference Id' },
  { id: 'companyaddress', label: 'Address' },
  { id: 'companyPostcode', label: 'Post Code' }
];
for (let i = 0; i < itemList.length; i++) {
      let caseRegex = /(?<=${itemList[i].label}: )\w+/g;
      let regexStr = caseRegex.exec(text);
      console.log("regexStr",regexStr);
};

当我尝试字符串的时候,它可以工作。但是我不能使用变量从循环中得到上面的工作

for (let i = 0; i < itemList.length; i++) {
      let caseRegex = /(?<=Company Name: )\w+/g;
      let regexStr = caseRegex.exec(text);
      console.log("regexStr",regexStr);
};
0s0u357o

0s0u357o1#

使用RegExp构造函数创建动态正则表达式。您可以使用模板文本将变量插入字符串。

let caseRegex = new RegExp(`(?<=${itemList[i].label}: )\w+`, 'g');

注意,在构造RegExp时,可能需要对正则表达式元字符进行转义。

相关问题