2013-03-14 38 views
3

我在我們的mysql數據庫中有23 St, 21 St這樣的站名。如何刪除Java中的序號值?

我申請Lucene搜索Java中的站的算法。

對於23街用戶可以給像23街,23日

我想從給定的輸入刪除序數,就像如果用戶給出23日聖那麼我想它來代替輸入與23 St

那麼有沒有什麼辦法可以刪除Java中的序數值?

+0

你嘗試'與string.replace()'? – Apurv 2013-03-14 07:22:29

+0

看看這一個http://stackoverflow.com/questions/6182290/regex-to-remove-ordinals – Breavyn 2013-03-14 07:22:46

+0

@Apurv我試着用String.replace,但它只給出了完整的字符串中的數字,如23rd St輸出= 23 – Deepu 2013-03-14 07:24:59

回答

2

這將刪除序號:

String s = s.replaceAll("(?<=\\d)(rd|st|nd|th)\\b", ""); 
+0

+1 3333答案:) – Maroun 2013-03-14 07:59:10

+0

沒有指定數字,所以「8月1日」變成了「1 Augu」。 – Greg 2016-01-01 16:54:25

+1

@greg正確的錯誤,錯誤的原因......它指定了數字:'(?<= \\ d)'是*後面的*,它斷言(即要求)前面的字符是數字。但是,我的語法是關閉的。我修復了它。看[現場演示](http://rubular.com/r/cRp9mRfVDr)。尼斯接起來。 – Bohemian 2016-01-01 18:26:37