刪除隨機表達我有一個字符串/列這樣的事情從字符串
String a = "000003023_AggregateStopLossLimit_W x3A 973911_2012-12-22.PDF";
我想創建不具有部分' x3A 973911'
在它的子字符串。
Whic意味着我想是這樣的,
000003023_AggregateStopLossLimit_W_2012-12-22.PDF
有這樣的字符串,這將有不同的值,但該格式將是相同的列表。我想要刪除第一個空格後面的字符串部分,並在下一個'_'結束。
這就是我已經做的,這工作正常,但想知道是否有更好的方法來做到這一點。
String b = a.replaceAll(a.substring(a.indexOf(" "), a.indexOf("_",a.indexOf(" "))),"");
如果我可以在數據庫本身,這是oracle,而不是在java中這樣做會更好。任何想法直接使用select從列中獲得這個格式化的字符串?
還有一個要求,我不想顯示文件的擴展名。
因此沒有'。'之後。應顯示,這意味着這樣的事情'000003023_AggregateStopLossLimit_W_2012-12-22'
我嘗試使用APC
的
select regexp_replace (your_string
, '([^[:space]]*) (.*)_(.*)....'
, '\1_\3') as new_string from your_table
這是目前工作正常以前的解決方案如下。
這應該是刪除最後4個字符,並且如果擴展名多於或少於3或者字符串未被截斷,則可能會得不到正確的結果。
我正在尋找更美觀的方式來做到這一點。
有沒有機會?
好的。我決定在查詢中這樣做。我現在需要的是在REGEXP_REPLACE sql函數中使用的正則表達式。請幫忙嗎? – jijo
我的解決方案現在應該爲你工作 - 除非你有更多的皺紋;) – APC
我需要一個更多的幫助,我不想顯示文件的擴展名。所以在''之後什麼都沒有。應該顯示,這意味着像這樣'000003023_AggregateStopLossLimit_W_2012-12-22'。任何機會? – jijo