如何在java中删除包含特定字符的单词?

时间:2015-04-30 19:18:07

标签: java regex string filereader symbols

有没有办法删除包含" @"的整个单词?使用正则表达式的字符?

例如,应删除以下字词:kʌn@tənɪub@ilu

我试过了:

line = br.readLine();
line = line.replaceAll("\\b[@]+\\b","");
System.out.println(line);

...只删除" @"符号,而不是单词本身。

2 个答案:

答案 0 :(得分:1)

使用正则表达式

[^@\s]*@\S*

[^ @ \ s] *查找零个或多个不是'@'或空格的字符

@寻找一个'@'

\ s *查找零个或多个不是空格的字符

因此代码行将是:

line = line.replaceAll("[^@\\s]*@\\s*","");

答案 1 :(得分:0)

您可以使用正则表达式:

(\\s+)([^\\s]*?@[^\\s]*?)(\\s+)

如果您想用它周围的两个空格替换它,您可以用$1$3替换它。

如果您只想用一个空格替换它(这看起来更好),您可以将其替换为$1$3

regex101.com上的

Here's a preview of the regex in action,以及它的工作原理:

  

\\s匹配任何空格字符
  \\s + 对任何空白字符进行一次或多次匹配。

     

[^\\s]匹配任何非空白字符
  [^\\s] *? 会在任何时间内匹配任何非空白字符,并尝试查找最小的匹配项。

     

@字面匹配字符 @

     

[^\\s]匹配任何非空白字符
  [^\\s] *? 会在任何时间内匹配任何非空白字符,并尝试查找最小的匹配项。

     

\\s匹配任何空格字符
  \\s + 对任何空白字符进行一次或多次匹配。