Apache Pig - les CORRESPONDANCES avec plusieurs critères de correspondance d'

Je suis en train de prendre un match logique de critères comme:

(("Foo" OR "Foo Bar" OR FooBar) AND ("test" OR "testA" OR "TestB")) OR TestZ

et appliquer ce qu'un match contre un fichier de porc à l'aide de

result = filter inputfields by text matches (some regex expression here));

Le problème est que je n'ai aucune idée de comment trun la logique de l'expression ci-dessus dans une expression regex pour les matches de la méthode.

J'ai bricolé avec les choses et le plus proche je suis arrivé à quelque chose comme ceci:

((?=.*?\bFoo\b | \bFoo Bar\b))(?=.*?\bTestZ\b)

Des idées? J'ai aussi besoin d'essayer de faire cette conversion par programmation si possible.

Quelques exemples:

un - Le brun rapide Foo sauté par-dessus le paresseux test (Cela devrait passer comme il contient des foo et test)

b - la chose se passait dans TestZ (Cela passe aussi, car il contient testZ)

c - le brun rapide Foo sauté par-dessus le chien paresseux (Ce doit échouer, car il contient de Foo mais pas de test,testA ou TestB)

Grâce

pour l'aigle aux yeux, il y a un manque"), " avant "OU TestZ". Veuillez ignorer cette faute de frappe. Merci
Si cette faute de frappe n'est pas intentionnel vous pouvez le corriger à l'aide de [modifier] option ci-dessous la question au lieu d'informer les autres à ce sujet 🙂
J'ai quelques idées sur la façon d'écrire votre regex, mais il forme dépendra de ce que vous avez et quel est le résultat que vous attendez. Pour l'instant, je ne suis pas sûr si test obligatoire après foo bar partie. Si oui, doit-il être également inclus dans le match (vous êtes à l'aide de look-ahead (?=...) donc probablement pas). Aussi, vous dites qu'il devrait y avoir ) avant OR TestZ donc, est-ce que TestZ est assez pour un seul match?
Salut, comme vous l'avez justement souligné, je peux le modifier...donc je l'ai ajouté le support maintenant. nous avons effectivement une liste de phrases dans le inputfields fichier (dans le champ de texte). Je suis à la recherche du texte qui correspond aux critères
Ce qui ne l'opérateur ET dans votre exemple? Un texte ne peut pas "Foo" et "tester" les deux en même temps ou est-il censé "Foo test"? Pouvez-vous poster un couple d'exemples de vos données d'entrée et de ceux qui vous veulent du match?

OriginalL'auteur user2495234 | 2013-09-01