javascript - 正则表达式能否写出粘连匹配(不使用es6的y)?

WBOY
Libérer: 2023-03-01 21:48:01
original
1846 Les gens l'ont consulté

<code>var str="abc"; 
var patt1=/\w/g;
document.write(str.match(patt1));</code>
Copier après la connexion
Copier après la connexion

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

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

回复内容:

<code>var str="abc"; 
var patt1=/\w/g;
document.write(str.match(patt1));</code>
Copier après la connexion
Copier après la connexion

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

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

直接用组合算法吧~

python3

<code class="python">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)</code>
Copier après la connexion
<code>'a,b,c,ab,ac,bc,abc'
</code>
Copier après la connexion

简洁些~

<code class="python">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))])</code>
Copier après la connexion
<code>['a', 'b', 'c', 'ab', 'ac', 'bc', 'abc']</code>
Copier après la connexion

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

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

function getStr(str) {
  var len = str.length;
  var i, j;
  var res = [];
  for (i = 0; i </code>
Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!