2016-07-13 54 views
-1

我有一個XML語句的文件這樣的內部清除不必要的文字:正則表達式,用於從特定的XML標籤

<rdfs:label>(mild) (585.2)</rdfs:label> 

我如何會刪除括號之間的文本,而不是號碼,使數據內容如下:

<rdfs:label>(585.2)</rdfs:label> 

在RDFS數:標記物可以是整數,至多兩個位置的小數或整數,小數或兩者的組合構成的範圍內。

我試過以下的正則表達式,但它似乎並沒有被正確地工作:

<rdfs:label>?([0-9]*) 
\(\1 

我只是忍辱負重,寫了一個Java方法來處理不規則數據。

+0

你們是不是在標籤標記之間提取的數字,像獲得600 Java方法? –

+0

是的,這正是我想要的,儘管有些值需要保留的數字前有V或E。最終目標是生成一個表示數據樹結構的文本文件 –

+1

使用XML解析器。不是正則表達式。 – Kusalananda

回答

0

這裏是我用來解決這個問題

String methodName(String a){ 
      for(int i = 0; i < a.length(); i++){ 
       if(a.charAt(i) == '('){ 
        if(Character.isDigit(a.charAt(i+1)) || (a.charAt(i+1) == 'V' && Character.isDigit(a.charAt(i+2))) || (a.charAt(i+1) == 'E' && Character.isDigit(a.charAt(i+2)))){ 
         for(int v = i; v < a.length(); v++){ 
          if(a.charAt(v) == ')'){ 
           return(a.substring(i+1,v)); 
          } 
         } 
        } 
       } 
      } 
1

regex的第一個捕獲組採用第一組括號和它們之間的任何內容,並使用以下空格。

<.*>(\(.*\)\s) 
+0

使用<.*>(\(。* \)\ s)作爲查找並替換它沒有任何更改0行 –