java - Making group constraints in Regex in android -


so have string:

         string articlecontent  = "dfgh{jdf%g{%qf234ad%22!#$56a%}vzsams{%3%45%}678456{78"; 

i want remove between {% %}

so result :

        dfgh{jdf%gvzsams678456{78 

i tried this:

         string regex = "[{%][^[%}]&&\\p{graph}]*[%}]";          string abc = articlecontent.replaceall(regex, ""); 

but is:

         dfghfgqf234ad}vzsams3}678456{78 

what suppose i'm doing wrong not able make group of "{%" instead of [{%] or condition { or % .

any suggestions?

edit 1: string have taken example. can have special characters in between {% , %} not ! , %

you can pattern:

string regex = "\\{%(?>[^%]++|%(?!}))*%}"; 

explanations:

the goal of pattern reduce @ minimum number of backtracks:

\\{%         # { need escaped (?>          # open atomic group *    [^%]++    # characters %, 1 or more times (possessive *)   |          # or    %(?!})    # % not followed } (<-no need escape) )*           # close atomic group, repeat 0 or more times %} 

(* more informations possessive quantifiers , atomic groups)


Comments

Popular posts from this blog

php - Calling a template part from a post -

Firefox SVG shape not printing when it has stroke -

How to mention the localhost in android -