正则表达式删除所有数字除了与字母表结合的数字

时间:2016-02-15 13:11:57

标签: java regex

我正在尝试从此字符串中删除数字,这些数字未附加字母字符

这是字符串:

  

161072,OLD RECTORY HOLYWELL HILL ST ALBANS AL1 1BY,       161408,HOLYWELL HILL ST ALBANS AL1 1BT,162589,PINETOP BIRKLANDS LANE ST ALBANS AL1 1EE

我想删除161072161408162589。我想要这个输出:

  

OLD RECTORY HOLYWELL HILL ST ALBANS AL1 1BY,         HOLYWELL HILL ST ALBANS AL1 1BT,PINETOP BIRKLANDS LANE ST ALBANS AL1 1EE

删除: 161072

请勿删除“1s”: AL1 1BT

如果我使用\\d,则删除所有数字:

myString= myString.replaceAll("\\d", "");
System.out.print(myString);

有任何帮助吗?我试图寻找类似的问题,但我找不到任何问题。如果我的问题不清楚或是否重复,请告诉我。感谢

修改

如果有一个行为,正则表达式不会在单词后面删除数字(如果只有一个数字),这将是很好的:

  

请勿删除字(空格)编号

示例:街道1

2 个答案:

答案 0 :(得分:5)

您可以使用word boundary RegEx

\b\d+\b

这将匹配一个或多个未被任何字母字符和_下划线包围的数字。

<强>代码:

myString = myString.replaceAll("\\b\\d+\\b", "");

Regex Demo

答案 1 :(得分:2)

使用字边界:

\\b\\d+\\b