java:regex删除数字
我想从字符串中删除所有数字,除非它们粘在字母上。java:regex删除数字,java,regex,Java,Regex,我想从字符串中删除所有数字,除非它们粘在字母上。 例如:F5 45,AD12应该变成:F5,AD12 到目前为止,我已经做到了这一点,这并不多…: line.replaceAll("[0-9]+", "")) 如果你有任何想法。。。 thx如果我正确理解您的用例,它应该是这样的: line.replaceAll("([^a-zA-Z]+)[0-9]+", "$1") 第一位匹配“除字母a-z外的任何内容”,其余匹
例如:F5 45,AD12应该变成:F5,AD12
到目前为止,我已经做到了这一点,这并不多…:
line.replaceAll("[0-9]+", ""))
如果你有任何想法。。。
thx如果我正确理解您的用例,它应该是这样的:
line.replaceAll("([^a-zA-Z]+)[0-9]+", "$1")
第一位匹配“除字母a-z外的任何内容”,其余匹配数字。第二个参数保留第一个匹配的字符,因此我们不会从输入中删除任何空格或逗号。
\b
是regexp-ese,表示“分词”。您可以查找精确的定义,但它可能会做您想做的事情,因为空格和“字符串的开始或结束”都算作分词,而内容本身并不匹配字符(因此,它不会删除这些空格),它的成功或失败取决于是否存在分词字符
因此:
应该完成。您可以匹配一个或多个数字,同时声明左侧没有数字或字母
(?我看到的问题是以34D结尾的数字..你不会得到these@micpog90这似乎是OP想要的,不是吗?34D不应该变成D。问题是“固定在字母上”,而不是“以字母为前缀”。
line.replaceAll("\\b[0-9]+\\b", "");