JavaScript 匹配前的任何正则表达式
JavaScript regular expressions anything before match
我对 JavaScript 中的正则表达式完全陌生,这可能是我第一次使用它,我想知道如何获取 before[=18] 的值=] 和 after 一个 colon 或 hash 并将它们的值存储到这样的变量中:
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' 拆分字符串,并抓取它后面的任何内容。
(?<trigger>.+?)(?=[:#])|(?<=[:#])(?<value>.+)
您可以使用前瞻和 lookbehinds.See demo.Grab 捕获或组通过简单的正则表达式来完成此操作。
我对 JavaScript 中的正则表达式完全陌生,这可能是我第一次使用它,我想知道如何获取 before[=18] 的值=] 和 after 一个 colon 或 hash 并将它们的值存储到这样的变量中:
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' 拆分字符串,并抓取它后面的任何内容。
(?<trigger>.+?)(?=[:#])|(?<=[:#])(?<value>.+)
您可以使用前瞻和 lookbehinds.See demo.Grab 捕获或组通过简单的正则表达式来完成此操作。