我创建了正则表达式以减少部分源代码。

/SRC_START\n([\s\S]*?)\n\/\/SRC_END/i


我在regex101.com where it appears to work上进行了测试。

但这在我的控制台中不起作用:

"ddd\
//SRC_START\
  function bounce(objectA, objectB) {} \
  \
//SRC_END\
  return bounce;\
})".match(/SRC_START\n([\s\S]*?)\n\/\/SRC_END/i)


如您所见,我逐字复制了myregex101代码段中的数据。我得到的结果是null

最佳答案

您输入的字符串与regex101上的字符串不同。

将您的输入声明为:

var str = 'ddd\n//SRC_START\n  function bounce(objectA, objectB) {} \n\n//SRC_END\n  return bounce;\n})\n';


然后这样做:

var re = /SRC_START\n([\s\S]*?)\n\/\/SRC_END/i;
var m = str.match(re);


将给出此匹配数组:

["SRC_START
  function bounce(objectA, objectB) {}

//SRC_END", "  function bounce(objectA, objectB) {}
"]


要在控制台中内联地执行所有操作,请执行以下操作:

"ddd\n\
//SRC_START\n\
  function bounce(objectA, objectB) {}\n \
  \
//SRC_END\n\
  return bounce;\n\
})".match(/SRC_START\n([\s\S]*?)\n\s*\/\/SRC_END/i)

09-20 05:26