fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6.  
  7. class Ideone
  8. {
  9. public static void main (String[] args) throws java.lang.Exception
  10. {
  11. String regex = "(?<hex><#\\w+>)|(?<action>\\[[^]]*]\\([^]]*\\))|(?<text>[\\w!* ]+)";
  12. String string = "Some <#000000>*text* [<#ffffff>Some more](action: Other <#gradient>text) and **finally** some more <#000>text!";
  13.  
  14. Pattern pattern = Pattern.compile(regex);
  15. Matcher matcher = pattern.matcher(string);
  16.  
  17. while (matcher.find()) {
  18. if (matcher.group("hex") != null) {
  19. System.out.println("HEX - " + matcher.group("hex"));
  20. }
  21. if (matcher.group("text") != null) {
  22. System.out.println("TEXT - " + matcher.group("text"));
  23. }
  24. if (matcher.group("action") != null) {
  25. System.out.println("ACTION - " + matcher.group("action"));
  26. }
  27. }
  28. }
  29. }
Success #stdin #stdout 0.1s 36276KB
stdin
Standard input is empty
stdout
TEXT - Some 
HEX - <#000000>
TEXT - *text* 
ACTION - [<#ffffff>Some more](action: Other <#gradient>text)
TEXT -  and **finally** some more 
HEX - <#000>
TEXT - text!