Javascript 要在两个字符之间匹配的RegExp
我正在寻找一个解决方案,以找到一个正则表达式,它将为我提供介于两个字符Javascript 要在两个字符之间匹配的RegExp,javascript,regex,Javascript,Regex,我正在寻找一个解决方案,以找到一个正则表达式,它将为我提供介于两个字符k和-之间的所有内容 示例:从42k12-b 我试着自己做一些正则表达式,但没有成功,因为我需要它来排除第一个和最后一个字符。我试过: k(.*)\- 但它包含了这两个角色 我怎样才能做到这一点 function createRegExp(str, startChar, endChar) { let regExpText = startChar + '(.*)' + endChar; let expressio
k
和-
之间的所有内容
示例:从42k12-b
我试着自己做一些正则表达式,但没有成功,因为我需要它来排除第一个和最后一个字符。我试过:
k(.*)\-
但它包含了这两个角色
我怎样才能做到这一点
function createRegExp(str, startChar, endChar) {
let regExpText = startChar + '(.*)' + endChar;
let expression = new RegExp(regExpText, 'g');
return expression.exec(str)[1];
}
此函数将接受3个参数。字符串,搜索开始处的字符和搜索结束处的字符,这两个字符都不包括在返回的结果中
当前格式的表达式捕获组(.*)
将是贪婪的,因此给定字符串'abcdabcdabcd'以及'a'和'd'字符,它将返回字符串'abcdabcdabcd'字符串的粗体部分,但使用惰性量词(.*)
,并给定相同的字符,它将返回字符串“abcdabcdacd”的粗体部分
.exec
函数返回一个包含两个元素的数组,第一个元素是表达式的完全匹配项,其中包括两个提供的字符和两个字符之间的字符,而第二个数组元素仅是两个提供的字符之间的字符
如上例所示,在动态创建此RegExp时请小心,因为某些字符需要在RegExp中转义,否则它们将被视为RegExp常规标记。能否显示您正在使用的代码(不仅仅是regex模式)?对于
k
,您必须在匹配后将其去掉。对于-
,您可以使用“向前看”在匹配之前停止。