Javascript 要在csv中搜索的js regexp

Javascript 要在csv中搜索的js regexp,javascript,regex,csv,Javascript,Regex,Csv,Hy,我有一个很长的csv,我想搜索包含某些单词的字符串,例如: var str = "Dan Jobsy,Google Analitis,ejobs"; 我发现: (?:^|,)(\"(?:[^\"]+|\"\")*\"|[^,]*) 这将解析CSV并返回单词,我想知道如何扩展它并添加一个条件以仅返回CSV中包含特定字符串的单词?比如,如果我搜索oo,它将只返回Google Analitics,但如果我搜索job,它将返回Dan Jobsy和ejobs 编辑: 这里没有找到解决方案,除了使

Hy,我有一个很长的csv,我想搜索包含某些单词的字符串,例如:

var str = "Dan Jobsy,Google Analitis,ejobs";
我发现:

(?:^|,)(\"(?:[^\"]+|\"\")*\"|[^,]*)
这将解析CSV并返回单词,我想知道如何扩展它并添加一个条件以仅返回CSV中包含特定字符串的单词?比如,如果我搜索oo,它将只返回Google Analitics,但如果我搜索job,它将返回Dan Jobsy和ejobs

编辑:

这里没有找到解决方案,除了使用我提供的regexp之外,如果我能自己解决这个问题,我会在这里发布ans。

String.searchpattern:

将RegExp与字符串匹配,并返回匹配开头的索引(如果找到),如果没有,则返回-1

但要得到所需的正则表达式,必须研究一些正则表达式模式。您可以启动或谷歌搜索javascript regexp教程

var str     = "Dan Jobsy,Google Analitis,ejobs";

var needle  = "job";
var matches = [];

for (i in A = str.match (/(\"(?:[^\"]+|\"\")*\"|[^,]+)(?=$|,)/g)) {
  if (A[i].toLowerCase().indexOf (needle.toLowerCase ()) != -1)
    matches.push (A[i]);
}

console.log (matches);
输出

[ 'Dan Jobsy', 'ejobs' ]

要使用分隔符拆分javascript字符串,请使用string.splitstr或regex

因此:


从那里你可以在数组中使用循环、indexOf、include和框架等进行搜索。

我知道我可以研究这一点,但我在搜索是否有人知道如何进行搜索:搜索oo的模式是简单的oo。这取决于您想如何使用它,因为CSV可能包含具有a作为值的条目,因此他需要比str.split“,”更复杂的内容;想一想:如果搜索字符串包含正则表达式中的修饰符/运算符,该怎么办?这很好,但不是通过regexp完成的,我想跳过forexp中的额外搜索如果您想将指针直接输入正则表达式,代码将变得非常混乱,你也需要逃出你的针头,否则你不会去搜索像StackOverflow?这样的字符串?。我看不出你有什么理由想把事情复杂化,尤其是当你要求解决一个你甚至都不关心自己学习如何解决的问题时。我关心学习,但我不认为我能在1-2天内找到解决方案,我理解上面的regexp是如何工作的,并设法搜索一个字符串。它将返回以我的搜索字符串开始的搜索字符串。问题是我有一个非常大的csv,需要快速搜索,而regexp是最好的方法你显然有很多东西要学,当你写的时候需要快速搜索,而regexp是同一句话中最好的方法..你的意思是我需要学习regexp,或者有比regexp更好的解决方案吗?看看一个非常类似的问题:不错,但我想要的是一种搜索并只返回在csv项目中包含关键字,10+用于解释:
var str = "Dan Jobsy,Google Analitis,ejobs";
var ary_names = str.split(','), i = 0, ary_len = array.length, count = 0;
for (i = 0; i < ary_len; i++){
  if (ary_names[i].match(/jobs/i)){ count++; }
}
// count is the # of times jobs was found.