[英]extract a string from
我有以下字符串
29 This is a Page1 6754001 1,2,3,4
6755 This is a Page2 56-0 7654564
This is a Page3 67543-986xx 8 12
This is (Page5)& Container 876-0 6 8xp
從上面,我需要提取以下文本
This is a Page1
This is a Page2
This is a Page3
This is (Page5)& Container
第一個數字和文本之間始終有一個空格,因此2129和1129之間有一個空格。 有時第一個數字被省略,例如2129不見了。 文本和下一個數字之間總是有一個空格,因此這是Page1和6754001之間的空格,有時可能會有兩個空格。 我只需要提取這些行,這些行總是在空格之后開始,因此可以
29 This is page1
他們總是被一個空格,有時是一個空格,有時是兩個空格所取代。
任何幫助將不勝感激。
您可以嘗試使用以下正則表達式來獲取文本,該文本的開頭是可選數字,然后是一個或多個空格和一個數字。
正則表達式:
^(?:\d+)?\s*(.*?)\s+\d.*
替換字符串:
$1
通過字符串替換,
代碼 :
string str = @"29 This is a Page1 6754001 1,2,3,4
6755 This is a Page2 56-0 7654564
This is a Page3 67543-986xx 8 12
This is (Page5)& Container 876-0 6 8xp";
string result = Regex.Replace(str, @"(?m)^(?:\d+)?\s*(.*?)\s+\d.*", "$1");
Console.WriteLine(result);
Console.ReadLine();
輸出:
This is a Page1
This is a Page2
This is a Page3
This is (Page5)& Container
要么
通過Matches
方法。
string str = @"29 This is a Page1 6754001 1,2,3,4
6755 This is a Page2 56-0 7654564
This is a Page3 67543-986xx 8 12
This is (Page5)& Container 876-0 6 8xp";
Regex rgx = new Regex(@"(?m)^(?:\d+)?\s*(.*?)\s+\d.*");
foreach (Match m in rgx.Matches(str))
Console.WriteLine(m.Groups[1].Value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.