我有以下一段代码:
string.replace(",Target_String", ""));
问题是逗号,
可以在Target_String
之前和之后发生,有时逗号和Target_String
之间可能会有空格。
我想避免使用诸如以下四种不同的replace
方法之类的代码:
string.replace(",Target_String", ""));
string.replace(", Target_String", ""));
string.replace("Target_String,", ""));
string.replace("Target_String ,", ""));
但是我不知道如何使用正则表达式实现上述功能。
编辑:逗号只能出现在开头或开头,而不能出现在target_string
的两侧
答案 0 :(得分:3)
您可以使用此正则表达式replaceAll
:
string = string.replaceAll(",?\\h*Target_String\\h*,?", "");
说明:
,?\\h
:匹配可选逗号,后跟0个或多个水平空格Target_String
:匹配文字Target_String
\\h*,?
:匹配0个或多个水平空格,后跟一个可选逗号答案 1 :(得分:1)
您可以将replaceAll
用作
string.replaceAll(",\\s*Target_String\\s*,","");
\\s*
匹配零个或多个空格字符
如果只有一种可能性,那么您可以使用?
来表示可能出现的字符。
string.replaceAll(",\\s?Target_String\\s?,","");
或使用
string.replaceAll("[, ]*Target_String[, ]*","");
[, ]*
:匹配零个或多个,
和空格字符
答案 2 :(得分:0)
尝试:string.replace(",\\s*Target_String\\s*", ""));
答案 3 :(得分:0)
string.replace("\\s*,?\\s*Target_String\\s*,?\\s*", ""));
答案 4 :(得分:0)
这还不够吗?
所有逗号都将统一设置在行中
"Target_String, blah , Target_String ,Target_String ,".replaceAll( "\\h*,\\h*", "," ) );
获取:Target_String,blah,Target_String,Target_String,