2014-09-02 100 views
-4
string[] data=File.ReadAllLines(@"D:\\data.txt"); 

string pattern = @"\d{1,2} " + @"\w{1,9} " + @"\d{4}"; 

foreach (string operand in data) 
{    
    Console.WriteLine(Regex.Match(operand,pattern)); 
} 

Console.ReadLine(); 

在輸出中,我得到了一些像上述模式的日期,但Regex.Match沒有提取我所有的日期,我應該怎麼做?正則表達式模式失敗

+0

什麼是「不工作」呢? - 哪些樣本值沒有被拾取? – 2014-09-02 16:34:29

+0

它沒有提取文件中的所有日期。 – 2014-09-02 16:35:06

+0

「九月」中的失敗日期都是如此(它的名稱中有10個字符,而不是每個正則表達式中的9個) – 2014-09-02 16:36:06

回答

0

我重新創建了你的問題,每件事情都很好。

代碼:

string[] data = File.ReadAllLines(@"D:\\data.txt"); 

string pattern = @"\d{1,2} " + @"\w{1,9} " + @"\d{4}"; 

foreach (string operand in data) 
{ 
    Console.WriteLine(Regex.Match(operand, pattern)); 
} 

Console.ReadLine(); 

文件數據:

Born  
Mahomedali Jinnahbhai 25 December 1876 Karachi, British India 
Died 11 September 1948 Karachi, Pakistan 
Political party 
Indian National Congress (1906–20) 
All-India Muslim League (1913–47) 
Muslim League (1947–48) 
Pakistan came into being on 14 August 1947 
not on 10 august 1947 

輸出:

enter image description here

我希望你能從解釋中得到一些東西。

+0

謝謝你,我認爲文本文件格式與我的代碼搞混了。 – 2014-09-02 17:06:30