La question est au chevauchement, vous voulez faire correspondre « ab » et aussi « bc » que vous ne serez pas en mesure de le faire avec un simple regex. Cependant, considérez ce qui suit.
Vous pouvez diviser sur tous les caractères avec l'une de ces lignes:
preg_match_all('/./', 'abc', $matches);
str_split('abc');
vous donner: array ('a', 'b', 'c').
Et ce qui suit découpera paires de caractères avec le caractère restant:
preg_match_all('/.{2}|./', 'abc', $matches);
vous donner: array ('ab', 'c');
Ainsi, vous pouvez jouer avec des combinaisons/variantes de ceux-ci pour atteindre votre résultat.
Je pense que c'est ce que vous voulez: http://stackoverflow.com/questions/2617055/how-to-generate-all-permutations-of-a-string-in-php – shamittomar
Ce n'est pas ce que les expressions régulières sont Il n'y a aucun moyen fiable de le faire, en plus d'écrire votre propre (sous-ensemble de) analyseur regex et de faire quelque chose de différent de toutes les autres implémentations de regex. – Wrikken
@shamittomar Non, je pensais qu'il était assez clair que '. +' N'était qu'un exemple. – Tom