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

Oll*_*vel 3 java regex android

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

在这个查询中(即)我想完全替换单词 'id' :

SELECT schedules.id as 'idreal' FROM schedules WHERE schedules.id = 12;
Run Code Online (Sandbox Code Playgroud)

最终查询:

SELECT schedules._id as 'idreal' FROM schedules WHERE schedules._id = 12;
Run Code Online (Sandbox Code Playgroud)

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

这是我的代码:

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

Log.v(TAG, "Clean Query: "  + query);
Run Code Online (Sandbox Code Playgroud)

我测试了

非常感谢。

fal*_*tru 5

你应该转义\来代表\字面意思。否则\b表示退格字符。

Matcher matcher = Pattern.compile("\\b(id)\\b").matcher(field);
Run Code Online (Sandbox Code Playgroud)