2016-09-30 1 views
1

J'ai affaire à IBM Watson Conversation. J'ai un texte qui contient quelques lettres et chiffres, c'est-à-dire age is 26.Récupérer le texte correspondant à partir de input.text.matches et stocker dans la variable de contexte dans la conversation watson

J'ai écrit une regex pour faire correspondre les chiffres du texte. Il est fait en utilisant .*?[0-9]+.*?. Maintenant, je veux que ces chiffres correspondent variables de contexte. Comment placer les chiffres appariés dans la variable de contexte?

Lorsque mon état correspond à avoir input.text.matches('.*?[0-9]+.*?'), alors je veux placer les chiffres seulement à mon contexte variables.

Ex:

{ 
    "context": { 
       "digit": { input.text } 
    } 
} 

Ici input.text prend tout le texte et le place dans chiffres variable.

Comment placer uniquement des chiffres en appliquant une expression régulière sur du texte?

+0

réponse mis à jour. –

Répondre

0

Vous pouvez extraire les expressions régulières de saisie de texte comme suit:

input.text.extract('.*?([0-9]+).*?', 1) 

La première partie est l'expression régulière. Le deuxième paramètre est l'ID du groupe.

0

Le deuxième paramètre est nécessaire pour l'extraction de travailler, donc si nous voulons extraire l'ensemble sous-chaîne correspondante, nous utilisons 0 pour le extract_id comme suit:

input.text.extract('[0-9]+', 0)