Regex,C#提取字串變數

來源:互聯網
上載者:User

在文章產生時,現在要建立一個動態標籤替換,用Regex操作方法

1.在模板檔案裡面有newslist_1_12 文章列表標籤 要提取這個列表的參數12 是列表行數 1是所屬分類編號

現在要新聞列表10行分類為52編號的列表,其替換標籤是 newslist_52_10 (這樣子可以明白吧)

2.分析思路

   a.把模板裡面的@"newslist_/d{1,2}_/d{1,2}" 提取出來,變成字串數組

   b.把字串數組裡面的參數提取出來

   c.提取的參數操作資料庫產生HTML代碼

public void getNewlList()
     {
        

        rxx = new System.Text.RegularExpressions.Regex(@"NewsList_(?<PID>(\d{1,2}))_(?<Num>(\d{1,2}))",
         RegexOptions.Compiled|RegexOptions.IgnoreCase);
        string input = Console.ReadLine();
        if (input == "Q")
        {
            return;
        }
        Console.WriteLine("字串長度:" + input.Length);
        System.Text.RegularExpressions.MatchCollection m;
        m = rxx.Matches(input);
        Console.WriteLine(m.Count);
        for (int i = 0; i < m.Count; i++)
        {

           //再次提取已經Regex分組後的字串
            Console.WriteLine(m[i].Result("分類:${PID}\t行數:${Num}"));
        }
     
         //單個提模數式
        //      print(rxx.Match(input).Result("${PID}${Num}") + "分類編號", true);

        getNewlList();
    }

附:微軟MSDN解釋

反向引用提供尋找重複字元組的方便的方法。它們可被認為是再次匹配同一個字串的快捷指令。

例如,若要尋找重複且相鄰的字元(如單詞“tall”中的兩個 L),可以使用Regex (?<char>\w)\k<char>,該Regex使用元字元 \w 來尋找任何單個單詞的字元。分組構造 (?<char> ) 將元字元括在其中,以強制Regex引擎記住子運算式匹配(在此樣本中將是任意單個字元),並以名稱“char”儲存它。反向引用構造 \k<char> 使引擎對當前字元和以名稱“char”儲存的先前匹配字元進行比較。只要單個字元與其前面的字元相同,整個Regex就可以找到一個匹配。

要找到重複的全字,您可以修改該分組子運算式,以搜尋前面是空格的任何字元組,而不是只搜尋任意單個字元。可以用匹配任何字元組的子運算式 \w+ 替換元字元 \w,並使用元字元 \s 匹配字元分組前的空格。這就產生了Regex (?<char>\s\w+)\k<char>,該Regex尋找任何重複的全字(例如“the the”),但也會匹配指定字串的其他重複情況,例如片語“the theory”中的重複情況。

為驗證上述第二種匹配是以單詞為邊界的,可以將元字元 \b 添加到重複匹配的後面。所產生的Regex (?<char>\s\w+)\k<char>\b 只尋找重複的、前面有空格的全字。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.