使用java忽略json响应的正则表达式中的空格

时间:2016-11-18 13:03:29

标签: java regex

执行REST操作时,响应中可以使用以下元素,但是我想通过忽略前导和尾随空格来捕获json属性的值。

响应可以是" bs_id":" 1234"或" bs_id" :" 1234"或" bs_id":" 1234"

我需要捕获bs_id键的值,忽略任何白色空格模式。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

我会用这个:

private static final Pattern BS_ID_PATTERN =
        Pattern.compile("\"bs_id\" *: *\"([^"]*)\"");

private String extractBsId(String jsonString) {
    Matcher bsIdMatcher = BS_ID_PATTERN.matcher(jsonString);
    if (bsIdMatcher.find()) {
        return bsIdMatcher.group(1);
    }
    // "bs_id" not found, so return null or an error as appropriate.
    return null;
}

这允许在冒号之前和/或之后使用空格的任何数量(零或更多,使用正则表达式*匹配器),但如果您只想允许零或一个空格,则可以替换{{ 1}}匹配*匹配器。

顺便说一句,看到用于匹配空格的正则表达式?是很常见的,但要注意这一点,因为它不仅会匹配标准空格字符,还会匹配换行符,回车符,制表符和竖线标签,这通常不是人们真正想要的。