java - character getting replaced by using regular expression -


string tempprop="(kfsdk)#"; tempprop = tempprop.replaceall("[^\\s]\\)\\#", "\"?if_exists}"); system.out.println("1"+tempprop+"2"); 

i want output

1(kfsdk"?if_exists}2

but output of regular expression

1(kfsd"?if_exists}2

last k getting trimmed, , don't know why.

if tempprop ( )#, output should 1( )#2 without "?if_exists regular expression adds "?if_exists if no space present else returns string is

you use negative lookbehind instead of [^\\s] because causes effect in final output. is, lookarounds 0 width match.

string tempprop="(kfsdk)#"; tempprop = tempprop.replaceall("(?<!\\s)\\)#", "\"?if_exists}"); system.out.println("1"+tempprop+"2"); 

output:

1(kfsdk"?if_exists}2 

explanation:

  • (?<!\s) negative lookbehind asserts preceeds not space character.
  • \)# matches literal )# symbols.

Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -