您好我正在寻找使用以下正则表达式解析QueryString.Am的正则表达式:
Pattern pr1=Pattern.compile("[\\?&](?<name>[^&=]+)=(?<value>[^&=]+)");
Run Code Online (Sandbox Code Playgroud)
但它的投掷
java.util.regex.PatternSyntaxException: Look-behind group does not have an obvious maximum length near index 18
[\?&](?<name>[^&=]+)=(?<value>[^&=]+)
^
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我
Java <1.7不支持命名组,因此将正则表达式更改为:
Pattern pr1 = Pattern.compile("[\\?&]([^&=]+)=([^&=]+)");
Run Code Online (Sandbox Code Playgroud)
然后从匹配器中获取名称和值的组#1和#2.
更新:
String str =
"http://test.abc.com/test/http/com/google/www/:/?code=1234&Id=123354455656%22";
Pattern pt = Pattern.compile("[\\?&]([^&=]+)=([^&=]+)");
Matcher m = pt.matcher(str);
if (m.find())
System.out.printf("name=[%s], value=[%s]%n", m.group(1), m.group(2));
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
name=[code], value=[1234]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5647 次 |
| 最近记录: |