正则表达式能否写出粘连匹配(不使用es6的y)?
高洛峰
高洛峰 2016-11-15 17:09:53
0
2
667
var str="abc"; 
var patt1=/\w/g;
document.write(str.match(patt1));

以上代码中,匹配结果为 ['a','b','c']

请问有没有一种正则写法,可以使匹配结果为 ['a','ab','abc','b','bc','c'] ,类似于高中数学的组合


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
学霸

考虑算法实现吧,穷举的js

var str = "abc";
console.log(getStr(str))

function getStr(str) {
  var len = str.length;
  var i, j;
  var res = [];
  for (i = 0; i 


三叔

直接用组合算法吧~

python3

import itertools as itrs

s = "abc"
rslt = ','.join((','.join((''.join(tlp)for tlp in itrs.combinations(s,r)))
                                       for r in range(1,len(s)+1)))
print(rslt)
'a,b,c,ab,ac,bc,abc'

简洁些~

from itertools import chain, combinations as combs
chn_itr = chain.from_iterable
s = "abc"
print([''.join(x)for x in chn_itr(combs(s,r)for r in range(1,len(s)+1))])
['a', 'b', 'c', 'ab', 'ac', 'bc', 'abc']


Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan