正则表达式\ b字边界不起作用

时间:2014-09-19 17:03:08

标签: java android regex

在Android中,我有下一个正则表达式\b(id)\b

在此查询(即)中,我想要完全替换单词“id”' :

SELECT schedules.id as 'idreal' FROM schedules WHERE schedules.id = 12;

最终查询:

SELECT schedules._id as 'idreal' FROM schedules WHERE schedules._id = 12;

但它不起作用,\ b是字边界,但它不起作用。我正在做什么?

这是我的代码:

Matcher matcher = Pattern.compile("\b(id)\b").matcher(field);
String query = matcher.replaceAll("_id");

Log.v(TAG, "Clean Query: "  + query);

我在

中测试过

非常感谢。

1 个答案:

答案 0 :(得分:4)

你应该逃避\以字面代表\。否则\b表示退格字符。

Matcher matcher = Pattern.compile("\\b(id)\\b").matcher(field);