2010-06-03 79 views
1

我有一個問題,我想你的幫助!我有一個特定的REGEX,我已經命名它「獨特」,我想存儲它給我的數據!前綴與此正則表達式!後綴如此!有人告訴我使用關於前綴和後綴在java中的問題

變種前綴和

變種後綴

,但我不知道該怎麼辦了!

您舒適我給ü我的XML爲這個表達式

<reg name="unique"> 
<start><![CDATA[ <!-- 72 HOURS FORECASTS --> 
]]></start> 
<end><![CDATA[<!-- 72 HOURS FORECASTS -->]]></end> 
</reg> 

這裏我把這個正則表達式是

int k = 0; 

for(Xml reg_is:fetchsite.child("site").child("regexps").children("reg")) { 
    if(reg_is.string("name").contains("unique")){ 


     if(reg_is.child("start").content()=="") 
      error += "\tNo prefix reg.exp. given.\n"; 

     else 
       prefix = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("start").content()));      

     if(reg_is.child("end").content()=="") 
      error += "\tNo suffix reg.exp. given.\n"; 
     else 
       suffix = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("end").content())); 

    } 
    else{ 
      poleis[k][0]= HtmlMethods.removeBreaks(reg_is.string("name")); 
      poleis[k][1] = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("start").content())); 
      poleis[k][2] = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("end").content())); 

      k++; 
} 
+1

...能不能請你,請你格式化後一點?大寫每個句子中第一個單詞的第一個字母也許......空格是你的朋友......不要只用兩個劉海和空格作爲你的唯一句子分隔符......任何東西? – 2010-06-03 19:29:24

+2

錯......什麼?你可以分享你現在使用的代碼嗎? – VoteyDisciple 2010-06-03 19:29:47

+1

我很困惑你的問題。 您是否在名爲「unique」的字符串中定義了一個模式?你是否希望將這個正則表達式模式應用到你的數據中以找到前綴和後綴? 你可以談論起始/結束位置定位嗎? 包括^在你的模式的前面說,它必須匹配開始 包括$在你的模式結束時說它必須結束 最後,]]>]]>不是xml。 – Anton 2010-06-03 19:32:12

回答

1

您的代碼一些一般性的評論代碼:

  • 使用==檢查String是否等於錯誤!使用equals()方法代替:

    reg_is.child("end").content().equals("") 
    
  • 另外,如果你是一個String變量與硬編碼String,最好是先放硬編碼字符串。這樣,如果變量爲空,你的程序將不會拋出NullPointerException(因爲硬編碼String不能爲空!)

    "".equals(reg_is.child("end").content()) 
    
  • 在做了很多String串聯的,這是更有效地使用一個StringBuilder

    StringBuilder error = new StringBuilder(); 
    error.append("\tNo prefix reg.exp. given.\n"); 
    
  • 像奧斯卡雷耶斯說,安全的事情if語句是總是使用大括號。如果添加一行並忘記添加大括號,則可以浪費小時跟蹤錯誤。我知道這是發生在我面前......

    if(reg_is.child("start").content()==""){ 
        error += "\tNo prefix reg.exp. given.\n"; 
    } else { 
        prefix = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("start").content())); 
    } 
    
+0

你能否幫我解決這個正則表達式的問題?我應該如何使用var前綴和var後綴?並感謝您的建議 – kate 2010-06-03 20:23:12