2010-06-21 7 views
1

numérique Dans le livre de Sipser de la théorie du calcul, suivant est donné:Expression régulière pour constante

une constante numérique qui peut comprendre une partie fractionnaire et/ou un signe peut être décrit comme un membre de la langue

(+ U - U e) (D + U D +. D * UD *. D +)

où D = {0,1,2,3,4,5,6,7,8, 9} est l'alphabet des chiffres décimaux. Les exemples des chaînes générées sont: 72, 3.14159, +7., Et -.01.

Ici, je ne peux pas comprendre quel est le but de prendre union de D + ou D *? D'ailleurs pourquoi le 3ème point est ajouté?

S'il vous plaît quelqu'un effacer mon doute.

Répondre

3

Il essaie de couvrir les cas suivants:

5 #matched by D+ 
.5 #matched by D*.D+ 
5. #matched by D+.D* 
5.5 #matched by both D*.D+ and D+.D* 
. #not matched 

Le caractère . dans les expressions est le séparateur décimal. Vous pouvez lire l'expression de cette façon:

(+ U - U e) ((D+) U (D+ . D*) U (D* . D+)) 
+0

Oh .... Merci beaucoup ... Je l'analyse totalement mal .. Merci encore. –