仅找到第一个匹配并返回数组中的剩余字符
我正在使用正则表达式来查找字符串中的匹配项。仅找到第一个匹配并返回数组中的剩余字符
输入作为 “一个”
变量作为 “香蕉”
需要作为阵列[ 'B', 'A', 'N', 'A']
I中试图输出事情:
https://regex101.com/r/k3bRid/1
代码
var regex = '[^' + input + ']';
regex = new RegExp(regex, 'gi')
var reduceArr = variable.match(regex);
它应产生与剩余的字符仅排除第一输入匹配阵列.. 输入可以是单独的字符或两个字符
实施例尝试:用于输入
:“TA”
for variable:“talking”
它正常工作
你可以采取的搜索字符串和替换第一找到一个空字符串。然后分割字符串以获取单个字符。
function getParts(input, string) {
var regex = new RegExp(input, 'i')
return string.replace(regex, '').split('');
}
console.log(getParts('an', 'banana'));
谢谢妮娜..简单和伟大的答案。回答我的问题,每次:) – Arun
这个发现在比赛前和输入字符串(regex101)后:
var input = 'an';
var variable = 'banana';
var regex = new RegExp('^(.*?)' + input + '(.*)$', 'i');
var reduceArr = (variable.match(regex) || []).slice(1).join('').split(''); // if matches where found, combine capture groups and split to characters
console.log(reduceArr);
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var input = 'an';
var variable = 'banana';
var regex = variable.replace(input, '');;
var arr=new Array(regex.split(''));
console.log(arr);
});
</script>
</head>
<body>
</body>
</html>
好一个兄弟...如果你链接线,将是伟大的 – Arun
thnk你bhai ..... –
没有正则表达式需要。你可以简单地做如下:
var bazooka = (t,s) => s.replace(t,"").split("");
console.log(bazooka("an","banana"));
console.log(bazooka("harbur","berlingo"));
我不太明白。你的标题要求“没有重复的剩余字符”,但是'['b','a','n','a']'确实有重复的'a's。请详细解释。 –
对不起,重复的输入...正则表达式应该只匹配第一次...其余的字符应返回作为字符在数组 – Arun