Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:regex删除数字_Java_Regex - Fatal编程技术网

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", "");