2013-05-02 96 views
-3

嗨,大家好,我也是新的正則表達式世界的想法是,我有一個代碼,我必須工作,所以我可以只修改該代碼我正在做的是我必須找到從字符串列表中的票號,但我得到這個錯誤長度不能少於零我添加一個檢查,當我添加一個檢查這個我得到一個錯誤,startindex不能小於零我寫我的代碼與細節錯誤StartIndex不能小於零

我aspx.cs頁:

using System.Windows.Forms; 
using System.Data; 
namespace AQCConsolidator1 
{ 
public partial class Form1 : Form 
{ 
    private void btnGetData_Click(object sender, EventArgs e) 
    { 
     List<String> list = new List<String>(); 
     List<String> list1 = new List<String>(); 

     string History = @"RP/DCA1S219C/DCA1S219C   SL/SU 7FEB13/2215Z 8TXSAK     
36 FA PAX 125-7239038457/ETBA/07FEB13/DCA1S211E/49881134      
    /S4-5/P3                 
37 FA PAX 125-7239038458/ETBA/07FEB13/DCA1S211E/49881134      
    /S4-5/P1                 
38 FA PAX 125-7239038459/ETBA/07FEB13/DCA1S211E/49881134      
    /S4-5/P2                 
    023 AF/FA 125-7239038457/ETBA/07FEB13/DCA1S211E/49881134/BA     
    272 N 24JUN SANLHR/BA 273 N 07AUG LHRSAN/MACDORMAN/SAM     
    CORBIN(CHD)                
    023 AF/FA 125-7239038458/ETBA/07FEB13/DCA1S211E/49881134/BA     
    272 N 24JUN SANLHR/BA 273 N 07AUG LHRSAN/LOJ/DANUTA      
    ISABELLA                 
    023 AF/FA 125-7239038459/ETBA/07FEB13/DCA1S211E/49881134/BA     
    272 N 24JUN SANLHR/BA 273 N 07AUG LHRSAN/MACDORMAN/JACK     
    HENRY                 
    023 RF-RH CR-DCA1S211E 49881134 GS 1003RH/RO-67ECDAB1 DCA1S2     
    10W 49592222 07FEB0628Z "; 

     string Histroy1 = @"RP/DCA1S219C/DCA1S219C   SL/SU 5APR13/2119Z 23ZEBK     
    42 FA PAX 220-7242648582-83/ETLH/USD1166.75/04APR13/DCA1S211E/4     
    9881134/S3-7/P1               
    43 FA PAX 220-7242648584-85/ETLH/USD1166.75/04APR13/DCA1S211E/4     
    9881134/S3-7/P2               
    022 AF/FA 220-7242636221-22/ETLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)        
    022 AF/FA 220-7242636223-24/ETLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)         
    022 RF-WS-NMC-US/WSTNGTNG CR-NYC1S21DD 33895934 SU 9999WS/RO     
    -9C9482E6 NYCW33TNG 00000000 04APR0223Z         
022/033 XF/FA 220-7242636221-22/ETLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)        
    033 AF/FA 220-7242636221-22/EVLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
)>md 
RP/DCA1S219C/DCA1S219C   SL/SU 5APR13/2119Z 23ZEBK     
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)        
033 RF-2G-NYC1S21SP/00102G CR-NYC1S21DD 33895934 GS 00102G/R     
    O-67ED3FEE NYC1S21SP 33608293 04APR0514Z         
022/034 XF/FA 220-7242636223-24/ETLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)         
    034 AF/FA 220-7242636223-24/EVLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)         
    034 RF-2G-NYC1S21SP/00102G CR-NYC1S21DD 33895934 GS 00102G/R     
    O-67ED3FEE NYC1S21SP 33608293 04APR0514Z         
033/035 XF/FA 220-7242636221-22/EVLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
    LH1730 T 18JUL MUCSJJ/TRESNJO/SABAHETA(ADT)        
034/035 XF/FA 220-7242636223-24/EVLH/USD1166.75/03APR13/       
    NYC1S21DD/33895934/OU 341 S 13MAY SJJZAG/LH6001 T 13MAY     
    ZAGFRA/LH 402 T 13MAY FRAEWR/LH7608 T 17JUL EWRMUC/      
    LH1730 T 18JUL MUCSJJ/TRESNJO/FEJZO(ADT)         
     string History2 = @"RP/DCA1S219C/DCA1S219C   SL/SU 9APR13/2223Z 4YYTR7     
45 FA PAX 257-7242858184/ETOS/USD736.23/08APR13/DCA1S211E/49881     
    134/S3-6/P1                
46 FA PAX 257-7242858185/ETOS/USD736.23/08APR13/DCA1S211E/49881     
    134/S3-6/P2                
    030 AF/FA 257-7242215364/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 087 K 31MAY VIEJFK/OS     
    088 L 09JUN JFKVIE/OS 847 L 10JUN VIETIA/MBYETI/PETRAQ(     
    ADT)                  
    030 AF/FA 257-7242215365/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 087 K 31MAY VIEJFK/OS     
    088 L 09JUN JFKVIE/OS 847 L 10JUN VIETIA/MBYETI/JORGJIE(    
    ADT)                  
    030 RF-WS-NMC-US/WSTMTFTP CR-DCA1S219C 49881134 SU 9999WS/RO     
    -9CCF46CE TNGW33TMT 00000000 07APR1829Z         
    030/035 CF/FA 257-7242215364/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 088 L 09JUN JFKVIE/OS     
    087 K 31MAY VIEJFK/OS 847 L 10JUN VIETIA/MBYETI/PETRAQ(     
    ADT)                  
030/035 AF/FA 257-7242215364/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 087 K 31MAY VIEJFK/     
    MBYETI/PETRAQ(ADT)              
)>md 
    RP/DCA1S219C/DCA1S219C   SL/SU 9APR13/2223Z 4YYTR7     
    030/035 CF/FA 257-7242215365/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 088 L 09JUN JFKVIE/OS     
    087 K 31MAY VIEJFK/OS 847 L 10JUN VIETIA/MBYETI/JORGJIE(    
    ADT)                  
    030/035 AF/FA 257-7242215365/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 087 K 31MAY VIEJFK/     
    MBYETI/JORGJIE(ADT)              
    035 RF-P-NYC1S21SP/44744U CR-NYC1S21DD 33895934 GS 44744U/RO     
    -67EC76D0 NYC1S21SP 33608293 08APR1143Z         
    035/043 XF/FA 257-7242215364/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 087 K 31MAY VIEJFK/     
    MBYETI/PETRAQ(ADT)              
    043 AF/FA 257-7242215364/EVOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 087 K 31MAY VIEJFK/     
    MBYETI/PETRAQ(ADT)              
    043 RF-SG CR-DCA1S211E 49881134 GS 0810SG/RO-67ECDAB1 DCA1S2     
    10W 49592222 08APR1217Z             
035/045 XF/FA 257-7242215365/ETOS/USD778.23/07APR13/DCA1S219C/     
    49881134/OS 850 K 31MAY TIAVIE/OS 087 K 31MAY VIEJFK/     
    MBYETI/JORGJIE(ADT)              
    045 AF/FA 257-7242215365/EVOS/USD778.23/07APR13/DCA1S219C/        
     list.Add(History); 
     list.Add(Histroy1); 
     list.Add(History2); 

     list1.Add(RTQ); 
     list1.Add(RTQ1); 

     MyClass1 mc = new MyClass1(); 
     DataTable dt = mc.GetNumber(list); 
    } 
} 

}

柯樂S碼::

using System.Data; 
using System.Text.RegularExpressions; 

namespace AQCConsolidator1 
{ 
class MyClass1 
{ 
    string output; 
    string subs; 

    DataTable dt = new DataTable(); 
    DataRow dr = null; 
    public DataTable GetNumber(List<string> request) 
    { 
     dt.Columns.Add("TickitNumber", typeof(string)); 

     foreach (string data in request) 
     { 
      string item = data; 
      while (item.Trim() != "") 
      { 
       dr = dt.NewRow(); 
       int r1 = item.IndexOf("\r", 3); 
       if(r1>0) 
       { 
       subs = item.Substring(0, r1); 
       } 
       if (subs.Contains("ET")) 
       { 
        Regex regexs = new Regex(@"[0-9||-]{14}"); 
        foreach (Match m in regexs.Matches(subs)) 
        { 
         output = m.ToString(); 
         dr["TickitNumber"] = output; 
        } 
        dt.Rows.Add(dr); 
       } 
        item = item.Substring(subs.Length); 

        r1 = item.IndexOf("\r\n", 0); 

        item = item.Substring(r1);///Error in this line StartIndex cannot be less than zero. 
      } 
     } 
     return dt; 
    } 
} 

}

+3

請嘗試添加一些標點符號從您的信件模糊創建可讀的句子,並解釋相關的代碼只有這樣的人你的問題可以理解問題,可能是幫助 – CodeCaster 2013-05-02 10:58:12

+0

是的,它返回-1,但我沒有得到它爲什麼返回-1,因爲我添加檢查r1如果(r1> 0),使長度參數不能小於零 – amitesh 2013-05-02 10:58:24

+0

因爲找不到字符串。正好在上面,通過測試r1是否大於0,爲什麼不在有問題的行上? – 2013-05-02 10:59:24

回答

0

嘗試使用

if(!string.IsNullOrEmpty(item)) 
{ 
    r1 = item.IndexOf(Environment.NewLine, 0); 
    if(r1 >0) 
    item = item.Substring(r1); 
} 
+0

錯誤:startIndex不能大於字符串的長度。 – amitesh 2013-05-02 11:17:26

+0

如果開始索引中的錯誤,那麼你的物品不具有它的價值! – Akrem 2013-05-02 11:24:01

+0

@amitesh我編輯我的答案 – Akrem 2013-05-02 11:25:34

相關問題