Change text using SpannableStringBuilder



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I want to make text when surrounded by (*) it will be bold and surrounded by (~) it will be strike. I following this link and modify the code to be like this



text = "*~TEST~* *TEST* ~TEST~ TEST";
texview.setText(createSpannable(text))

private static SpannableStringBuilder createSpannable(final String str)
StringBuffer stringBuffer = new StringBuffer();
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();

//Matcher matcher = BOLD_REGEX.matcher(str);
Matcher matcher = Pattern.compile("(\*(.*?)\*)


Expectation Output :



Expectation



My Output :



My Output



How can i achieve this?










share|improve this question






















  • You are processing a string with one pass, but your matches are overlapping. Split this replacement logic into two steps, one with *([^*]*)* regex and the other with ~([^~]*)~

    – Wiktor Stribiżew
    Nov 15 '18 at 10:22











  • Try like this: text = "~*TEST*~ *TEST* ~TEST~ TEST";

    – Ümañg ßürmån
    Nov 15 '18 at 10:22











  • @WiktorStribiżew i have change my regex with yours , but the result remain the same

    – valentino
    Nov 15 '18 at 10:32











  • I did not recommend to change the regex, I suggest to split the programming logic to run subsitutions twice, to process a string twice, once with the first regex and then with the second.

    – Wiktor Stribiżew
    Nov 15 '18 at 10:33











  • @Ümañgßürmån i think that doesn't help, because the text is dynamic

    – valentino
    Nov 15 '18 at 10:34

















0















I want to make text when surrounded by (*) it will be bold and surrounded by (~) it will be strike. I following this link and modify the code to be like this



text = "*~TEST~* *TEST* ~TEST~ TEST";
texview.setText(createSpannable(text))

private static SpannableStringBuilder createSpannable(final String str)
StringBuffer stringBuffer = new StringBuffer();
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();

//Matcher matcher = BOLD_REGEX.matcher(str);
Matcher matcher = Pattern.compile("(\*(.*?)\*)


Expectation Output :



Expectation



My Output :



My Output



How can i achieve this?










share|improve this question






















  • You are processing a string with one pass, but your matches are overlapping. Split this replacement logic into two steps, one with *([^*]*)* regex and the other with ~([^~]*)~

    – Wiktor Stribiżew
    Nov 15 '18 at 10:22











  • Try like this: text = "~*TEST*~ *TEST* ~TEST~ TEST";

    – Ümañg ßürmån
    Nov 15 '18 at 10:22











  • @WiktorStribiżew i have change my regex with yours , but the result remain the same

    – valentino
    Nov 15 '18 at 10:32











  • I did not recommend to change the regex, I suggest to split the programming logic to run subsitutions twice, to process a string twice, once with the first regex and then with the second.

    – Wiktor Stribiżew
    Nov 15 '18 at 10:33











  • @Ümañgßürmån i think that doesn't help, because the text is dynamic

    – valentino
    Nov 15 '18 at 10:34













0












0








0








I want to make text when surrounded by (*) it will be bold and surrounded by (~) it will be strike. I following this link and modify the code to be like this



text = "*~TEST~* *TEST* ~TEST~ TEST";
texview.setText(createSpannable(text))

private static SpannableStringBuilder createSpannable(final String str)
StringBuffer stringBuffer = new StringBuffer();
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();

//Matcher matcher = BOLD_REGEX.matcher(str);
Matcher matcher = Pattern.compile("(\*(.*?)\*)


Expectation Output :



Expectation



My Output :



My Output



How can i achieve this?










share|improve this question














I want to make text when surrounded by (*) it will be bold and surrounded by (~) it will be strike. I following this link and modify the code to be like this



text = "*~TEST~* *TEST* ~TEST~ TEST";
texview.setText(createSpannable(text))

private static SpannableStringBuilder createSpannable(final String str)
StringBuffer stringBuffer = new StringBuffer();
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();

//Matcher matcher = BOLD_REGEX.matcher(str);
Matcher matcher = Pattern.compile("(\*(.*?)\*)


Expectation Output :



Expectation



My Output :



My Output



How can i achieve this?







java android regex string spannablestringbuilder






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 15 '18 at 10:19









valentinovalentino

564




564












  • You are processing a string with one pass, but your matches are overlapping. Split this replacement logic into two steps, one with *([^*]*)* regex and the other with ~([^~]*)~

    – Wiktor Stribiżew
    Nov 15 '18 at 10:22











  • Try like this: text = "~*TEST*~ *TEST* ~TEST~ TEST";

    – Ümañg ßürmån
    Nov 15 '18 at 10:22











  • @WiktorStribiżew i have change my regex with yours , but the result remain the same

    – valentino
    Nov 15 '18 at 10:32











  • I did not recommend to change the regex, I suggest to split the programming logic to run subsitutions twice, to process a string twice, once with the first regex and then with the second.

    – Wiktor Stribiżew
    Nov 15 '18 at 10:33











  • @Ümañgßürmån i think that doesn't help, because the text is dynamic

    – valentino
    Nov 15 '18 at 10:34

















  • You are processing a string with one pass, but your matches are overlapping. Split this replacement logic into two steps, one with *([^*]*)* regex and the other with ~([^~]*)~

    – Wiktor Stribiżew
    Nov 15 '18 at 10:22











  • Try like this: text = "~*TEST*~ *TEST* ~TEST~ TEST";

    – Ümañg ßürmån
    Nov 15 '18 at 10:22











  • @WiktorStribiżew i have change my regex with yours , but the result remain the same

    – valentino
    Nov 15 '18 at 10:32











  • I did not recommend to change the regex, I suggest to split the programming logic to run subsitutions twice, to process a string twice, once with the first regex and then with the second.

    – Wiktor Stribiżew
    Nov 15 '18 at 10:33











  • @Ümañgßürmån i think that doesn't help, because the text is dynamic

    – valentino
    Nov 15 '18 at 10:34
















You are processing a string with one pass, but your matches are overlapping. Split this replacement logic into two steps, one with *([^*]*)* regex and the other with ~([^~]*)~

– Wiktor Stribiżew
Nov 15 '18 at 10:22





You are processing a string with one pass, but your matches are overlapping. Split this replacement logic into two steps, one with *([^*]*)* regex and the other with ~([^~]*)~

– Wiktor Stribiżew
Nov 15 '18 at 10:22













Try like this: text = "~*TEST*~ *TEST* ~TEST~ TEST";

– Ümañg ßürmån
Nov 15 '18 at 10:22





Try like this: text = "~*TEST*~ *TEST* ~TEST~ TEST";

– Ümañg ßürmån
Nov 15 '18 at 10:22













@WiktorStribiżew i have change my regex with yours , but the result remain the same

– valentino
Nov 15 '18 at 10:32





@WiktorStribiżew i have change my regex with yours , but the result remain the same

– valentino
Nov 15 '18 at 10:32













I did not recommend to change the regex, I suggest to split the programming logic to run subsitutions twice, to process a string twice, once with the first regex and then with the second.

– Wiktor Stribiżew
Nov 15 '18 at 10:33





I did not recommend to change the regex, I suggest to split the programming logic to run subsitutions twice, to process a string twice, once with the first regex and then with the second.

– Wiktor Stribiżew
Nov 15 '18 at 10:33













@Ümañgßürmån i think that doesn't help, because the text is dynamic

– valentino
Nov 15 '18 at 10:34





@Ümañgßürmån i think that doesn't help, because the text is dynamic

– valentino
Nov 15 '18 at 10:34












0






active

oldest

votes












Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53317185%2fchange-text-using-spannablestringbuilder%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53317185%2fchange-text-using-spannablestringbuilder%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo