我想从地址中删除非字母字符,除非它们后跟字母。
e.g。我想删除7
和e7
,但不删除7th
我认为正则表达式exp的英文翻译将是:删除所有"单词"那不是以字母字符结尾?
我想转
850 7th Ave Frnt 1, New York, NY 10019
进入
7th Ave Frnt, New York, NY
以前我在做
address.replaceAll("\\d","");
但是当我想出像7日这样的话语时,我想完全保留这些话。
我已经尝试了这个(\d)$
,但这似乎只与10019的最后一位数字相匹配(也尝试了很多其他变体),所有这些似乎都远远不够。
答案 0 :(得分:4)
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|$)