Utiliser Apache Cochon et le texte
extrctd = FOREACH fltr GENERATE FLATTEN(EXTRACT(txt,'(my brother just .*\\p{Punct})')) as (txt:chararray);
3 Réponses :
Avez-vous essayé: On dirait que votre expression voulait que le . * (mon frère juste. * \\ p {punct}) code> p>
mon frère code> soit le début de la chaîne, mais dans votre exemple, c'est au milieu de la chaîne afin que vous puissiez rendre compte de tout avant
mon frère code>. p>
Par défaut Les quantifiers sont gourmand . Cela signifie qu'ils correspondent autant que possible. Dans ce cas, vous voulez correspondre uniquement à la première marque de ponctuation. En d'autres termes, vous voulez correspondre le moins possible.
Pour résoudre votre problème, vous devez rendre le quanitifer non gourmand en ajoutant un ? Code> immédiatement après: P>
my brother just .*?\\p{Punct}
^
Souhaitez-vous expliquer la partie gourmande? Je pensais que je serais juste correspondant à partir du mot juste, tout texte suivant, jusqu'à la première instance de ponctuation.
Sans non-gourmand, il ne correspond pas à la première instance de ponctuation, il correspond plutôt à ce que dernier i> un.
Qu'en est-il s'il n'y a pas de ponctuation? J'aimerais que cela correspond à la fin de la phrase ou de l'EOL s'il n'y a pas de ponctuation.
Une réponse plus intuitive pourrait être de faire correspondre tout ce qui n'est pas une ponctuation après «mon frère», puis correspond à une ponctuation. De cette façon, la partie "pas une ponctuation" correspondra à chaque mot / espace et s'arrête à la première ponctuation.
Vous correspondez. * Ce qui est ... Tout ... Essayez [AZ] * Pour faire correspondre des lettres uniquement p>