Java中从字符串中删除所有字母数字单词

3
如何找到一个正则表达式来从字符串中删除所有的字母数字单词?
以下是我不成功的尝试:
假设我的字符串是:String mystring ="the food was thrill4 not2 that good 6son";
    mystring = mystring.replaceAll("[0-9A-Za-z]","");

但它没有起作用。

期望的结果应该是:"这食物太好吃了"。


我不理解这个问题。the是一个字母数字单词,为什么应该被移除? - Barmar
听起来你想要删除的是所有包含数字的单词。 - Barmar
正确。数字可以出现在单词的任何位置。 - j2emanue
2个回答

2

试试这个:

\w*\d+\w*\s*

演示

细节:

  • \w* - 匹配以0个或多个单词字符开头的字符串
  • \d+ - 匹配一个或多个数字
  • \w* - 匹配以0个或多个单词字符结尾的字符串
  • \s* - 匹配单词后面的零个或多个空格

\w\d+\w\s 这似乎是我想要的,谢谢太棒了。 - j2emanue

1
您的代码是在字符级别上操作,而不是在单词上。使用\b匹配单词边界,然后匹配它们之间的内容。
mystring.replaceAll("\\b([a-zA-Z]*[0-9]+[a-zA-Z]*)\\b", "");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接