【问题标题】:How to convert a list of strings to a list of regexes如何将字符串列表转换为正则表达式列表
【发布时间】:2021-08-05 03:04:53
【问题描述】:

我正在使用 Javascript,我正在从 .txt 文件中导入数据,并且我将 .txt 文件中的所有元素放在一个列表中,但我想将该字符串列表转换为正则表达式列表。

假设我有一个列表:["abc", "def", "ghi"]
我想把它变成列表:[/abc/g, /def/g, /ghi/g]

我已经想出了如何将整个列表变成一个单一的正则表达式,但我的目标是让列表中的每个元素到字符串对应于正则表达式列表中的一个元素。

这就是我现在所拥有的,它将字符串列表中的所有内容都转换为一个正则表达式:

var fs = require("fs");
var myList = fs.readFileSync("./files/mytextfile.txt", "utf-8")
myList = myList.split("\n");
var myListRegex = new RegExp(myList.join("\n"), 'g');

使用上面相同的示例列表,如果我要打印 myListRegex,会产生以下结果:

/abc
def
ghi/g

当我希望它打印这个时:

[/abc/g, /def/g, /ghi/g]

【问题讨论】:

    标签: javascript node.js arrays regex list


    【解决方案1】:

    const myList = ["abc", "def", "ghi"] const rez = myList.reduce((prev, curr) => [...prev, new RegExp(curr, 'g')], [] as RegExp[])

    【讨论】:

      【解决方案2】:

      你现在正在做的事情是把事情分开,然后把它放回原来的样子,所以这个new RegExp(myList, 'g');和你的一样。

      您需要做的是拆分 myList 并映射它,在数组的每个索引中创建一个 RegExp

      myList = myList.split("\n");
      var myListRegex = myList.map((expression) => new RegExp(expression, 'g'));
      

      【讨论】:

        猜你喜欢
        • 2019-06-23
        • 2018-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-28
        • 2022-11-18
        • 1970-01-01
        • 2014-09-22
        相关资源
        最近更新 更多