À peu près ce que dit la question. Je suis venu avecRegex qui définit un langage régulier avec {a, b} sans une sous-chaîne avec exactement 3 b (bbb)
(ba)?(a + bb + bbbbb + aba)*(ab)?
Y at-il quelque chose de plus lisible? Ou est-ce incorrect? Je sais que vous ne devriez pas vraiment faire ce genre de chose avec Regex quand vous pouvez simplement y aller! ~/Bbb/dans votre code, mais c'est un exercice de théorie.
Merci.
Modifier pour clarifier: Je n'utilise pas |
pour représenter le bit OR dans la Regex et en utilisant +
à la place. Désolé pour la confusion.
Éditer 2: {a,b}
est pour un langage avec juste 'a' et 'b' caractères. Pas {mininum, maximum}. Encore pardon.
Édition 3: Parce que cela fait partie d'une classe de théorie, nous traitons juste les bases de Regex. Les seules choses que vous pouvez utiliser sont +,?,() Et *. Vous ne pouvez pas utiliser {minimum, maximum).
Je ne comprends pas votre question. '{a, b}' signifie combien de fois quelque chose doit être répété. Veuillez fournir un exemple de {a, b} et de bbb. J'ai peur que ces Bs soient quelque chose de différent. –
Vous souhaiterez peut-être d'abord concevoir le DFA, puis le convertir en RE. J'ai trouvé cela très utile par le passé. – dave
Oui, c'est vrai. Brainimplosion de ma part, désolé =) Je vais supprimer le commentaire original pour éviter de dérouter les gens. – Jens