简体   繁体   中英

Java replaceAll Regex for special character [

I am having regex expression problem. need helps from regex experts! It's fairly simple but I can't get it to work.

I know if I want to check the starting of a text, I should use ^ and ending of the text, I should use $

I want to replace [quote] to <a>quote</a> .

This doesn't seems to work..

String test = "this is a [quote]"
test.replaceAll("^\\[", "<a>");
test.replaceAll("\\]$", "</a>");

I want the string to become "this is a <a>quote</a>" ..

If you want to replace [ and ] with pair, you need to replace them in one time.

String test = "this [test] is a [quote]";
String result = test.replaceAll("\\[([^\\]]+)\\]", "<a>$1</a>");

^ implies that you are looking for something at the beginning of the string. However [ does not appear at the beginning of the string, so you will not have a match. Just do:

test.replaceAll("\\[", "<a>");
test.replaceAll("\\]", "</a>");

Also, you cannot modify a String in-place. you'll have to assign the output to something. You can do:

test = test.replaceAll("\\[", "<a>").replaceAll("\\]", "</a>");

That is if you still want to use the variable test .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM