正则表达式忽略空格

时间:2020-04-22 20:08:44

标签: java regex replace

我有以下一段代码:

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的两侧

5 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式replaceAll

string = string.replaceAll(",?\\h*Target_String\\h*,?", "");

RegEx Demo

说明:

  • ,?\\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*", ""));

Demo

答案 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,