删除数字但不是单词的一部分

时间:2015-10-21 11:22:57

标签: java regex

我想从地址中删除非字母字符,除非它们后跟字母。

e.g。我想删除7e7,但不删除7th

我认为正则表达式exp的英文翻译将是:删除所有"单词"那不是以字母字符结尾?

我想转

850 7th Ave Frnt 1, New York, NY 10019

进入

7th Ave Frnt, New York, NY

以前我在做

address.replaceAll("\\d","");

但是当我想出像7日这样的话语时,我想完全保留这些话。

我已经尝试了这个(\d)$,但这似乎只与10019的最后一位数字相匹配(也尝试了很多其他变体),所有这些似乎都远远不够。

2 个答案:

答案 0 :(得分:4)

使用stackoverflow

address.replaceAll("\\b\\d+\\b","");

添加\s*,如果您还要删除数字前面的空格。

address.replaceAll("\\s*\\b\\d+\\b\\s*","");

答案 1 :(得分:4)

\\b\\d+\\b

试试这个。看看演示。

https://regex101.com/r/gT6vU5/7

\b assert position at a word boundary (^\w|\w$|\W\w|\w\W)

或使用lookaheads

(?:^|(?<=\W))\d+(?=\W|$)

https://regex101.com/r/gT6vU5/8