import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(\\w+(?=\\/NN.?|JJ))";
final String string = "(S (NP cured/VBN ham/NN))\n"
+ "(S (NP cured/VBN smoked/VBD beef/NN))\n"
+ "(S (NP curry/NN powder/NN))\n"
+ "(S (NP custard/NN))\n"
+ "(S (NP custard/NN) (NP puerto/JJ rican/JJ style/NN))\n"
+ "(S (NP custard-apple/NN))\n"
+ "(S (NP cytosport/NN muscle/NN milk/NN ready-to-drink/NN))\n"
+ "(S (NP daiquiri/NN))\n"
+ "(S (NP daiquiri/NN) (NP prepared/VBN) --/: (NP recipe/VB))\n"
+ "(S (NP dandelion/NN) greens/NNS)\n"
+ "(S (NP dandelion/NN) greens/NNS (NP cooked/VBD butter/NN))\n"
+ "(S (NP dandelion/NN) greens/NNS (NP cooked/VBD margarine/NN))\n"
+ "(S (NP dandelion/NN) greens/NNS (NP cooked/VBD oil/NN))\n"
+ "(S\n"
+ " (NP dandelion/NN)\n"
+ " greens/NNS\n"
+ " (NP cooked/VBD boiled/VBN drained/JJ salt/NN))\n"
+ "(S\n"
+ " (NP dandelion/NN)\n"
+ " greens/NNS\n"
+ " (NP cooked/VBD fat/NN)\n"
+ " (NP added/VBD cooking/NN ns/NN type/NN fat/NN))\n"
+ "(S\n"
+ " (NP dandelion/NN)\n"
+ " greens/NNS\n"
+ " (NP cooked/VBD fat/NN)\n"
+ " (NP added/VBD cooking/NN))\n"
+ "(S\n"
+ " (NP dandelion/NN)\n"
+ " greens/NNS\n"
+ " (NP cooked/VBD ns/JJ fat/NN)\n"
+ " (NP added/VBD cooking/NN))\n"
+ "(S (NP danish/JJ dessert/NN pudding/NN))\n"
+ "(S (NP danish/JJ pastry/NN cheese/NN))\n"
+ "(S (NP danish/JJ pastry/NN cinnamon/NN) (NP enriched/VBD))\n"
+ "(S (NP danish/JJ pastry/NN cinnamon/NN) (NP unenriched/VBD))\n"
+ "(S\n"
+ " (NP danish/JJ pastry/NN fruit/NN)\n"
+ " (NP\n"
+ " enriched/VBD\n"
+ " includes/VBZ\n"
+ " apple/NN\n"
+ " cinnamon/NN\n"
+ " raisin/NN\n"
+ " lemon/NN\n"
+ " raspberry/NN\n"
+ " strawberry/NN))\n"
+ "(S\n"
+ " (NP danish/JJ pastry/NN fruit/NN)\n"
+ " (NP\n"
+ " unenriched/VBD\n"
+ " includes/VBZ\n"
+ " apple/NN\n"
+ " cinnamon/NN\n"
+ " raisin/NN\n"
+ " strawberry/NN))\n"
+ "(S (NP danish/JJ pastry/NN lemon/NN) (NP unenriched/VBD))\n"
+ "(S (NP danish/JJ pastry/NN raspberry/NN) (NP unenriched/VBD))\n"
+ "(S (NP dark/JJ) (NP chocolate/VB 45-59/JJ %/NN cocoa/NN))\n"
+ "(S (NP dark/JJ) (NP chocolate/VB 60-69/JJ %/NN cocoa/NN))\n"
+ "(S (NP dark/JJ) (NP chocolate/VB 70-85/JJ %/NN cocoa/NN))\n"
+ "(S (NP dark/JJ chocolate/NN) (NP coated/VBD coffee/NN) beans/NNS)\n"
+ "(S (NP dasheen/NN) (NP boiled/VBD))\n"
+ "(S (NP dasheen/NN) (NP fried/VBD))\n"
+ "(S (NP date/NN candy/NN))\n"
+ "(S dates/NNS (NP deglet/VBP noor/JJ))\n"
+ "(S (NP decaf/NN coffee/NN))\n"
+ "(S (NP deer/NN chop/NN) (NP cooked/VBD))\n"
+ "(S (NP dehydrated/VBN milk/NN))\n"
+ "(S (NP dessert/NN dip/NN))\n"
+ "(S (NP dessert/NN pizza/NN))\n"
+ "(S (NP dessert/NN sauce/NN))\n"
+ "(S (NP dessert/NN topping/NN) (NP powdered/VBD))\n"
+ "(S\n"
+ " (NP dessert/NN topping/NN)\n"
+ " (NP powdered/VBD 1.5/CD)\n"
+ " (NP ounce/NN)\n"
+ " (NP prepared/VBD 1/2/CD)\n"
+ " cup/NNS\n"
+ " (NP milk/NN))";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html