我正在尝试让 Java 正则表达式替换逗号分隔列表中的特定短语。
例如,我有一串
"BOAT, AMAZON ECHO, TABLE, GLASSES"
,我有正则表达式
"BOAT(\s*)?,?(\s*)?"
适用于
"BOAT,"
、"BOAT, "
、"BOAT , "
,但在以下情况下不起作用:
BOAT
是列表中唯一的项目"CAR, SAILBOAT, TEST, BOAT,"
将取代 BOAT
中的
SAILBOAT
为什么不直接将
replaceAll
与单词边界定界符元字符 (\\b
) 一起使用。
String s = "BOAT, AMAZON ECHO, SAILBOAT,TABLE, EYEGLASSES, GLASSES";
s = s.replaceAll("\\bBOAT\\b", "Foo");
System.out.println(s);
s = s.replaceAll("\\bGLASSES\\b", "Bar");
System.out.println(s);
打印
Foo, AMAZON ECHO, SAILBOAT,TABLE, EYEGLASSES, GLASSES
Foo, AMAZON ECHO, SAILBOAT,TABLE, EYEGLASSES, Bar