有没有办法删除包含" @"的整个单词?使用正则表达式的字符?
例如,应删除以下字词:kʌn@tənɪu
和b@ilu
我试过了:
line = br.readLine();
line = line.replaceAll("\\b[@]+\\b","");
System.out.println(line);
...只删除" @"符号,而不是单词本身。
答案 0 :(得分:1)
使用正则表达式
[^@\s]*@\S*
[^ @ \ s] *查找零个或多个不是'@'或空格的字符
@寻找一个'@'
\ s *查找零个或多个不是空格的字符
因此代码行将是:
line = line.replaceAll("[^@\\s]*@\\s*","");
答案 1 :(得分:0)
您可以使用正则表达式:
(\\s+)([^\\s]*?@[^\\s]*?)(\\s+)
如果您想用它周围的两个空格替换它,您可以用$1$3
替换它。
如果您只想用一个空格替换它(这看起来更好),您可以将其替换为$1
或$3
。
Here's a preview of the regex in action,以及它的工作原理:
\\s
匹配任何空格字符
\\s
+
对任何空白字符进行一次或多次匹配。
[^\\s]
匹配任何非空白字符
[^\\s]
*?
会在任何时间内匹配任何非空白字符,并尝试查找最小的匹配项。
@
字面匹配字符 @ 。
[^\\s]
匹配任何非空白字符
[^\\s]
*?
会在任何时间内匹配任何非空白字符,并尝试查找最小的匹配项。
\\s
匹配任何空格字符
\\s
+
对任何空白字符进行一次或多次匹配。