从字符串中提取子字符串,其中包含特殊字符

时间:2017-06-21 18:21:10

标签: java regex

从下面给出的字符串中提取"year=2017""taxType=RE"的最佳方法是什么?

href="/property/33951?year=2017&taxType=RE"

3 个答案:

答案 0 :(得分:2)

也许你可以使用这个正则表达式(?i)year=(\d{4}?)&taxType=(\[a-z\]+),它可以匹配两个组,一个是year=之后的一个或多个降级,第二个是&taxType=之后的一个或多个alphabitics:

Java演示

String str = "/property/33951?year=2017&taxType=RE";
Pattern pattern = Pattern.compile("(?i)year=(\\d+?)&taxType=([A-Z]+)");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
    System.out.println("Year = " + matcher.group(1));
    System.out.println("taxType = " + matcher.group(2));
}

<强>输出

Year = 2017
taxType = RE

答案 1 :(得分:0)

check_in通常用于获取check_out参数。 你需要寻找第2组来获得参数,第3组获得价值。

根据评论中的要求

(\?|\&)([^=]+)\=([^&]+)

这应该可以解决问题。

答案 2 :(得分:0)

用于Android开发:

    Uri uri = Uri.parse("/property/33951?year=2017&taxType=RE");
    String year = uri.getQueryParameter("year");
    String taxType= uri.getQueryParameter("taxType");