Change text using SpannableStringBuilder

Multi tool use
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
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 :
My Output :
How can i achieve this?
java

|
show 2 more comments
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 :
My Output :
How can i achieve this?
java

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
|
show 2 more comments
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 :
My Output :
How can i achieve this?
java

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 :
My Output :
How can i achieve this?
java

java

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
|
show 2 more comments
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
|
show 2 more comments
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
YfwxNd9s SULJb0q37K nuhI3m sX1miWtYpDx p1naMrS,4,p5M8FxtV
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