
Lo puedes buscar en el apartado de moreblock en sketchware.
codigo:
final TextView regex1 = new TextView(this);
final TextView regex2 = new TextView(this);
final TextView regex3 = new TextView(this);
final TextView regex4 = new TextView(this);
final TextView regex5 = new TextView(this);
final TextView regex6 = new TextView(this);
final TextView regex7 = new TextView(this);
final TextView regex8 = new TextView(this);
final TextView regex9 = new TextView(this);
final TextView regex10 = new TextView(this);
regex1.setText("(out|print|println|valueOf|toString|concat|equals|for|while|switch|getText");
regex2.setText("|println|printf|print|out|parseInt|round|sqrt|charAt|compareTo|compareToIgnoreCase|concat|contains|contentEquals|equals|length|toLowerCase|trim|toUpperCase|toString|valueOf|substring|startsWith|split|replace|replaceAll|lastIndexOf|size)");
regex3.setText("(public|private|protected|void|switch|case|class|import|package|extends|Activity|TextView|EditText|LinearLayout|CharSequence|String|int|onCreate|ArrayList|float|if|else|static|Intent|Button|SharedPreferences");
regex4.setText("|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|interface|long|native|new|package|private|protected|");
regex5.setText("public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while|true|false|null)");
regex6.setText("([0-9]+)");
regex7.setText("(\\w+)(\\()+");
regex8.setText("\\@\\s*(\\w+)");
regex9.setText("\"(.*?)\"|'(.*?)'");
regex10.setText("/\\*(?:.|[\\n\\r])*?\\*/|//.*");
final String secondaryColor = _spanscolor;
final String primaryColor = _spanpcolor;
final String numbersColor = _spanncolor;
final String quotesColor = _spanqcolor;
final String commentsColor = _spanccolor;
_spanableview.addTextChangedListener(new TextWatcher() {
ColorScheme keywords1 = new ColorScheme(java.util.regex.Pattern.compile(regex1.getText().toString().concat(regex2.getText().toString())), Color.parseColor(secondaryColor));
ColorScheme keywords2 = new ColorScheme(java.util.regex.Pattern.compile(regex3.getText().toString().concat(regex4.getText().toString().concat(regex5.getText().toString()))), Color.parseColor(primaryColor));
ColorScheme keywords3 = new ColorScheme(java.util.regex.Pattern.compile(regex6.getText().toString()), Color.parseColor(numbersColor));
ColorScheme keywords4 = new ColorScheme(java.util.regex.Pattern.compile(regex7.getText().toString()), Color.parseColor(secondaryColor));
ColorScheme keywords5 = new ColorScheme(java.util.regex.Pattern.compile(regex9.getText().toString()), Color.parseColor(quotesColor));
ColorScheme keywords6 = new ColorScheme(java.util.regex.Pattern.compile(regex10.getText().toString()), Color.parseColor(commentsColor));
ColorScheme keywords7 = new ColorScheme(java.util.regex.Pattern.compile(regex8.getText().toString()), Color.parseColor(numbersColor));
final ColorScheme[] schemes = {keywords1, keywords2, keywords3, keywords4, keywords5, keywords6, keywords7};
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
removeSpans(s, android.text.style.ForegroundColorSpan.class);
for(ColorScheme scheme : schemes) {
for(java.util.regex.Matcher m = scheme.pattern.matcher(s);
m.find();) {
if (scheme == keywords4) {
s.setSpan(new android.text.style.ForegroundColorSpan(scheme.color), m.start(), m.end()-1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
} else {
s.setSpan(new android.text.style.ForegroundColorSpan(scheme.color), m.start(), m.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
}
}
void removeSpans(Editable e, Class<? extends android.text.style.CharacterStyle> type) {
android.text.style.CharacterStyle[] spans = e.getSpans(0, e.length(), type);
for (android.text.style.CharacterStyle span : spans) {
e.removeSpan(span);
}
}
class ColorScheme {
final java.util.regex.Pattern pattern;
final int color;
ColorScheme(java.util.regex.Pattern pattern, int color) {
this.pattern = pattern;
this.color = color;
}
}
});