Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找前缀和后缀之间的每个子字符串的Javascript解决方案_Javascript_Node.js_Regex - Fatal编程技术网

查找前缀和后缀之间的每个子字符串的Javascript解决方案

查找前缀和后缀之间的每个子字符串的Javascript解决方案,javascript,node.js,regex,Javascript,Node.js,Regex,我有一个以下格式的字符串 Hello this#result1#是一个示例#result2#字符串,包含很多#和#result3#我需要找到#之间的所有值。 我需要基于javascript或nodejs的解决方案,它只能返回['result1','result2','result3'] 规则: 预期结果之间没有间隔 预期结果之间没有# 它应该排除像['result1#是一个示例#result2#包含大量字符串,'result1#是一个示例']这样的结果。 下面的代码段应该可以工作: let s

我有一个以下格式的字符串

Hello this#result1#是一个示例#result2#字符串,包含很多#和#result3#我需要找到#之间的所有值。

我需要基于javascript或nodejs的解决方案,它只能返回
['result1','result2','result3']

规则:

  • 预期结果之间没有间隔
  • 预期结果之间没有
    #
  • 它应该排除像
    ['result1#是一个示例#result2#包含大量字符串,'result1#是一个示例']这样的结果。

  • 下面的代码段应该可以工作:

    let str=“Hello this#result1#是一个样本#result2#字符串,包含大量的#和#result3#我需要找到#之间的所有值”;
    让标识符=“#”;
    函数getsubstring(str,标识符){
    让结果=[];
    让splittedItems=str.split(标识符);
    splittedItems.forEach(
    职能(项目){
    如果(item.length>1&&item.indexOf(“”)=-1){
    结果:推送(项目);
    }
    }
    );
    返回结果;
    }
    write(getsubstring(str,identifier))
    在行动中看到它

    var str='Hello this#result1#是一个样本#result2#字符串,包含大量#和#result3#我需要找到#之间的所有值';
    
    log(str.match(/#[^#\s]+#/g))您的问题可能有许多特殊情况,如果没有关于您尝试了什么以及如何失败的详细信息,很难给出明确的答案。 您可以尝试从以下内容开始:

    var input = 'Hello this #result1# is a sample #result2# string with a lot of # and  #result3# i need to find all the values between #';
    output = input.match(/#[A-Za-z0-9]+#/g);
    console.log(output); //["#result1#", "#result2#", "#result3#"]
    
    [A-Za-z0-9]
    匹配任何大写字母(
    A-Z
    )、小写字母(
    A-Z
    )和数字(
    0-9

    +
    表示前面的模式应至少出现一次

    g
    表示全局,因此匹配字符串中所有出现的模式


    这应该会让你走起来。

    分享你的研究成果对每个人都有帮助。告诉我们您尝试了什么,以及为什么它不能满足您的需求。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另外,这是一项非常简单的任务,应该很容易找到,只需花费最少的精力搜索SO,或者搜索整个web。虽然此代码片段可以解决问题,但确实有助于提高您的帖子质量。请记住,您将在将来为读者回答这个问题,而这些人可能不知道您的代码建议的原因。感谢您的建议:)因为您提供了正则表达式的解释,所以进行了投票。
    var input = 'Hello this #result1# is a sample #result2# string with a lot of # and  #result3# i need to find all the values between #';
    output = input.match(/#[A-Za-z0-9]+#/g);
    console.log(output); //["#result1#", "#result2#", "#result3#"]