正则表达式模式替换具有特殊字符的&符号

时间:2014-01-02 17:42:59

标签: java regex for-loop ampersand

我需要将https://9S&Re替换为https://9S#Re,以便我可以避免拆分逻辑。我的目标是获取密钥为“user_image”,值为"https://9S&Re"。但是当我使用'&'拆分时它给了我错误的结果。所以我正在尝试正则表达式模式,它将检查& *&如果inbetween不等于意味着查询值中有一个&符号。任何帮助都非常感谢。

import java.nio.charset.Charset;
    import java.util.HashMap;
    import java.util.List;

    import org.apache.http.NameValuePair;
    import org.apache.http.client.utils.URLEncodedUtils;

    public class OAuthTest {

        public static void main(String[] args) {
            try {
                //HashMap paramHashMap=new HashMap();           
                List<NameValuePair> args2= URLEncodedUtils.parse("tool=canvas&tool_guid=8314&user_image=https://9S&Re&launch_presentation_document_target=iframe", Charset.forName("UTF-8"));
                for (NameValuePair arg:args2)
                    System.out.println(arg.getName()+"="+arg.getValue().replaceAll("#","&"));

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }

1 个答案:

答案 0 :(得分:1)

在for循环中,您是否正在尝试替换&amp; #?你的论点被转换了。