/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
import java.util.regex.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
String str
= " <play> a < b <play> at < button >\n <play> a < 90 <play> at < button >\n hgsf a< sjdfvh> dasjfh a>jsdhf a<fan> a< button and > sjf" ; //str = str.replaceAll("(\\w+)\\s*<\\s*(\\w++(?!\\s*>))", "$1 less than $2");
//System.out.println(str);
Matcher m = Pattern.compile ( "(\\ s*<\\ s*\\ w+\\ s*>\\ s*)|\\ s*([<>])\\ s*" ) .matcher ( str) ;
while ( m.find ( ) ) {
String replacement
= m.
group ( 1 ) != null ? // Check if Group 1 is matched m.group ( 1 ) : //If yes, use Group 1
( m.group ( 2 ) .equals ( "<" ) ? " less than " : " greater than " ) ; // If not, replace Group 2
m.appendReplacement ( result, replacement) ; // Add the replacement
}
m.appendTail ( result) ;
System .
out .
println ( result.
toString ( ) ) ; }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguKjsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgc3RyID0gIiA8cGxheT4gYSA8IGIgIDxwbGF5PiBhdCA8IGJ1dHRvbiA+XG4gPHBsYXk+IGEgPCA5MCA8cGxheT4gYXQgPCBidXR0b24gPlxuaGdzZiBhPCBzamRmdmg+IGRhc2pmaCBhPmpzZGhmIGE8ZmFuPiBhPCBidXR0b24gYW5kID4gc2pmIjsKCQkvL3N0ciA9IHN0ci5yZXBsYWNlQWxsKCIoXFx3KylcXHMqPFxccyooXFx3KysoPyFcXHMqPikpIiwgIiQxIGxlc3MgdGhhbiAkMiIpOwogICAgCS8vU3lzdGVtLm91dC5wcmludGxuKHN0cik7CiAgICAJU3RyaW5nQnVmZmVyIHJlc3VsdCA9IG5ldyBTdHJpbmdCdWZmZXIoKTsKCQlNYXRjaGVyIG0gPSBQYXR0ZXJuLmNvbXBpbGUoIihcXHMqPFxccypcXHcrXFxzKj5cXHMqKXxcXHMqKFs8Pl0pXFxzKiIpLm1hdGNoZXIoc3RyKTsKCQl3aGlsZSAobS5maW5kKCkpIHsKCQkJU3RyaW5nIHJlcGxhY2VtZW50ID0gbS5ncm91cCgxKSAhPSBudWxsID8gLy8gQ2hlY2sgaWYgR3JvdXAgMSBpcyBtYXRjaGVkCgkJCSAgICBtLmdyb3VwKDEpIDogLy9JZiB5ZXMsIHVzZSBHcm91cCAxCiAgICAgICAgICAgIAkobS5ncm91cCgyKS5lcXVhbHMoIjwiKSA/ICIgbGVzcyB0aGFuICIgOiAiIGdyZWF0ZXIgdGhhbiAiKTsgLy8gSWYgbm90LCByZXBsYWNlIEdyb3VwIDIKICAgIAkJbS5hcHBlbmRSZXBsYWNlbWVudChyZXN1bHQsIHJlcGxhY2VtZW50KTsgLy8gIEFkZCB0aGUgcmVwbGFjZW1lbnQKCQl9CgkJbS5hcHBlbmRUYWlsKHJlc3VsdCk7CiAgICAJU3lzdGVtLm91dC5wcmludGxuKHJlc3VsdC50b1N0cmluZygpKTsKCX0KfQ==