import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\[\\[hero:([^:\\]]*):?.*\\]\\]";
final String string = "<div id=\"HeroesChanges\">\n"
+ " [[hero:abaddon]]\n"
+ " [[patchnote]] Aphotic Shield cast point reduced from 0.4 to 0.3\n"
+ " [[patchnote]] Borrowed Time scepter duration increased from 5/6/7 to 6/7/8\n"
+ " [[patchnote]] Level 15 Talent increased from +48 Mist Coil Heal/Damage to +50\n"
+ " [[patchnote]] Level 15 Talent changed from +6 Armor to +65 Damage\n"
+ " [[patchnote]] Level 20 Talent changed from +80 Damage to +8 Armor\n"
+ " [[patchnote]] Level 25 Talent increased from 375 AoE Mist Coil to 425\n"
+ " [[shard:abaddon_aphotic_shield:shardupgrade]]\n"
+ " [[shardnote]] Causes Mist Coil and Aphotic Shield to apply a Curse of Avernus stack on enemies. Increases base slow by 6%.\n"
+ " [[shardvideo]]\n"
+ " [[heroend]]\n\n"
+ " [[hero:alchemist]]\n"
+ " [[patchnote]] Unstable Concoction manacost reduced from 120 to 90/100/110/120\n"
+ " [[patchnote]] Unstable Concoction cooldown reduced from 22/20/18/16 to 16\n"
+ " [[patchnote]] Acid Spray damage increased from 15/20/25/30 to 20/25/30/35\n"
+ " [[patchnote]] Acid Spray first damage instance is now immediate rather than after a second\n"
+ " [[patchnote]] Gold bonus cap reduced from 18/22/26/30 to 18/21/24/27 (last hit count from 5/7/8/9 to 5/6/7/8)\n"
+ " [[patchnote]] If an ally already has a scepter buff or the item, it refunds them based on which version they have (either 4200 or 5800). \n"
+ " [[patchnote]] Alchemist granted scepter buffs provide the full stat bonuses.\n"
+ " [[patchnote]] Scepter damage/spell amp bonus reduced from 30/6 to 20/5\n"
+ " [[patchnote]] Level 20 Talent reduced from +30% Cleave to +25%\n"
+ " [[shard:alchemist_berserk_potion:shardnew]]\n"
+ " [[shardnote]] Grants Berserk Potion. Throws a potion at the target ally, applying a basic dispel and granting +50 Attack Speed and +40 HP Regen for 10 seconds. Cast Range: 800. Cooldown: 45. Manacost: 125. Can be used on self.\n"
+ " [[shardvideo]]\n"
+ " [[heroend]]\n\n"
+ " [[hero:ancient_apparition]]\n"
+ " [[patchnote]] Ice Blast max travel time improved from 2 seconds to 1.75\n"
+ " [[patchnote]] Chilling Touch manacost reduced from 30/50/70/90 to 30/45/60/75\n"
+ " [[shard:ancient_apparition_ice_vortex:shardupgrade]]\n"
+ " [[shardnote]] Causes Ice Vortex to deal 40 DPS and reduces attack speed by 20.\n"
+ " [[shardvideo]]\n"
+ " [[heroend]]\n\n"
+ " [[hero:antimage:scepterreworked]]\n"
+ " [[patchnote]] Mana Break max burn reduced from 1/2/3/4% to 1/1.8/2.6/3.4%\n"
+ " [[patchnote]] Level 15 Talent changed from +12 Agility to +8 Armor\n"
+ " [[patchnote]] Level 15 Talent reduced from +325 Blink Cast Range to +300\n"
+ " [[patchnote]] Level 20 Talent changed from Blink Uncontrollable Illusion to +0.1 Mana Void Damage Multiplier\n"
+ " [[patchnote]] <span class=\"reworked-scepter\">Scepter Rework:</span> Now grants Blink Fragment. Blinks an illusion at the target enemy or location and attacks them for 7 seconds. Uses Blink's Cast Range. Illusion cannot be controlled, deals 50% damage, takes 250%. Casting Counterspell also casts it on the Fragment illusion. Cooldown: 20. Manacost: 50\n"
+ " [[shard:antimage_counterspell:shardupgrade]]\n"
+ " [[shardnote]] Successful Counterspell creates an illusion attacking the caster for 5 seconds. Removes Counterspell manacost.\n"
+ " [[shardvideo]]\n"
+ " [[heroend]]";
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