JavaScript 匹配前的任何正则表达式

JavaScript regular expressions anything before match

我对 JavaScript 中的正则表达式完全陌生,这可能是我第一次使用它,我想知道如何获取 before[=18] 的值=] 和 after 一个 colonhash 并将它们的值存储到这样的变量中:

var str = 'name[:|#]result';
// before and after values
var trigger = 'name';
var value = 'result';
// logs: name result
console.log(trigger + ' ' + value);

这会做你想做的事(现在用正则表达式)

var str1 = 'name:result',
    str2 = 'name#result';
// get anything before ':result'
var matcher = new RegExp(/(.*)[:|#](.*)/);
var minResult1 = str1.match(matcher),
    minResult2 = str2.match(matcher);

// This will split the results to: 
// [fullstring, name, result]

console.log(minResult1[1], minResult1[2]); 
console.log(minResult2[1], minResult2[2]); 

它根据文本 ':result' 拆分字符串,并抓取它后面的任何内容。

这里有新的工作示例:http://jsfiddle.net/TheIronDeveloper/qjdrjozx/1/

(?<trigger>.+?)(?=[:#])|(?<=[:#])(?<value>.+)

您可以使用前瞻和 lookbehinds.See demo.Grab 捕获或组通过简单的正则表达式来完成此操作。

https://www.regex101.com/r/rG7gX4/21