【问题标题】:Remove all alphanumeric words from a string in java从java中的字符串中删除所有字母数字单词
【发布时间】:2017-02-12 06:17:06
【问题描述】:

如何找到一个正则表达式来删除字符串中的所有字母数字单词?

这是我尝试失败的方法:

假设我的字符串是:String mystring ="the food was thrill4 not2 that good 6son";

    mystring = mystring.replaceAll("[0-9A-Za-z]","");

但它不起作用。

预期的结果应该是: “食物很好吃”

【问题讨论】:

  • 我不明白这个问题。 the 是一个字母数字词,为什么不应该删除它?
  • 听起来您要删除的是所有包含数字的单词。
  • 正确。并且数字可以在单词中的任何位置

标签: regex


【解决方案1】:

试试这个:

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

Demo

详情:

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

【讨论】:

  • \w*\d+\w*\s 这似乎是我想要的,非常感谢。
【解决方案2】:

您的代码是在字符级别而不是单词级别上运行的。使用\b 匹配单词边界,然后匹配它们之间的内容。

mystring.replaceAll("\\b([a-zA-Z]*[0-9]+[a-zA-Z]*)\\b", "");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-27
    • 2022-01-09
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2020-04-29
    • 2010-12-09
    相关资源
    最近更新 更多