fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import java.util.regex.*;
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. String str = " <play> a < b <play> at < button >\n <play> a < 90 <play> at < button >\nhgsf a< sjdfvh> dasjfh a>jsdhf a<fan> a< button and > sjf";
  13. //str = str.replaceAll("(\\w+)\\s*<\\s*(\\w++(?!\\s*>))", "$1 less than $2");
  14. //System.out.println(str);
  15. StringBuffer result = new StringBuffer();
  16. Matcher m = Pattern.compile("(\\s*<\\s*\\w+\\s*>\\s*)|\\s*([<>])\\s*").matcher(str);
  17. while (m.find()) {
  18. String replacement = m.group(1) != null ? // Check if Group 1 is matched
  19. m.group(1) : //If yes, use Group 1
  20. (m.group(2).equals("<") ? " less than " : " greater than "); // If not, replace Group 2
  21. m.appendReplacement(result, replacement); // Add the replacement
  22. }
  23. m.appendTail(result);
  24. System.out.println(result.toString());
  25. }
  26. }
Success #stdin #stdout 0.09s 320576KB
stdin
Standard input is empty
stdout
 <play> a less than b  <play> at < button >
 <play> a less than 90 <play> at < button >
hgsf a< sjdfvh> dasjfh a greater than jsdhf a<fan> a less than button and greater than sjf