import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?:[\\d\\sx]+)?(?:\\[.*\\]\\s)?(?:(.*)(?:[\\(\\/].*)$|(.*)(?:foil)|(.*?)\\d|(.*))";
final String string = "4x Silhana Ledgewalker (Silhana Saltador de Peitoril) - NM\n"
+ "4x Kiln Fiend (Demônio Fornalha) - NM\n"
+ "4x Assault Strobe (Estroboscópio de Ataque) - NM\n"
+ "1x [Expedition] Wasteland\n"
+ "Urborg, Tomb of Yawgmoth\n"
+ "4 Thoughtcast\n"
+ "1x [OGW] Kozilek, a Grande Distorção\n"
+ "1x [OGW] Retorno de Kozilek\n"
+ "1x [OGW] Retorno de Kozilek\n"
+ "1x [OGW] Linvala, a Preservadora\n"
+ "Regal Force\n"
+ "2 Bloodstained Mire\n"
+ "4 Relic of Progenitus\n"
+ "1x Olho de Ugin / Eye of Ugin FOIL\n"
+ "1x Templo dos Eldrazi / Eldrazi Temple\n"
+ "1x [Expedition] Prairie Stream (Mint)\n"
+ "2x World Breaker / Rompe-mundos Mint\n"
+ "4x Holy Day (Dia Sagrado) - NM\n"
+ "1x TAmpo de adivinhação do sensei\n"
+ "1 x Gosmanuladora\n"
+ "1 x Gaddock Teeg\n"
+ "4x Força de Vontade\n"
+ "1x Fractius Pele Preciosa / Gemhide Sliver\n"
+ "1x Lupíneo Coração de Prata / Wolfir Silverheart\n"
+ "1 x Inquisição de Kozilek 4 de 4\n"
+ "1 x Gosmanuladora\n"
+ "Tropical island\n"
+ "1x Ugin's Nexus foil\n"
+ "1x Visões do Soro FOIL \\\"FNM\\\"\n"
+ "1x Labirinto Nimboso / Nimbus Maze\n"
+ "1x Espadas em Arados / Swords to Plowshares\n"
+ "1x Regiões Agrestes de Adarkar / Adarkar Wastes\n"
+ "1x Costa do Mar de Cromo / Seachrome Coast\n"
+ "1x Presente do Molda-aço / Steelshaper\\\\\\\\\n"
+ "1x Aprisionar / Remand\n"
+ "1x Imposto Territorial / Land Tax\n"
+ "1x Pasmar / Daze (JP)\n"
+ "1x Magiaprisionar / Trickbind\n"
+ "2x Comandante do Elmo de Coral / Coralhelm Commander\n"
+ "1x Caminho para o Exílio / Path to Exile\n"
+ "2x Thrun, the Last Troll/ Thrun, o Último Troll **NM**\n"
+ "1x Cone de Vapor / Vapor Snag\n"
+ "1x Cone de Vapor / Vapor Snag\n"
+ "1x Cone de Vapor / Vapor Snag\n"
+ "1x Cone de Vapor / Vapor Snag\n"
+ "1x Cone de Vapor / Vapor Snag";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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