2012-03-21 72 views
2

是否可以在正則表達式中將組的值複製到另一個組中?手段,我有一個文本行我可以將RegEx組的值分配給另一個嗎?

errID name_of_error: description bla bla 

,我用這個RE保存此行

^(?'code'[\w\d]{5}) {3}(?'name'[\w\d]+?(?=:)): (?<=)(?'desc'.+?)(?=$) 

我本來就是在我的正則表達式包含的「代碼值的附加組的所有部分',就像

code -> errID 
    newgroup-> errID 
    name-> name_of_error 
    desc -> description bla bla 

可行嗎?

編輯:我使用C#

+0

爲M42,我想知道:這正則表達式引擎使用命名組與'(「組」 ......?)'的語法? – ZJR 2012-03-21 13:13:37

+1

你可以在C#中使用這種語法# – alex555 2012-03-21 13:18:25

回答

3

我不知道你用的是什麼語言,尤其是對命名組的語法,但我認爲你可以使用:

^(?'newgroup'(?'code'[\w\d]{5})) {3}(?'name'[\w\d]+?(?=:)): (?<=)(?'desc'.+?)(?=$) 

而且[\w\d]可以簡化爲\w,則正則表達式變成:

^(?'newgroup'(?'code'\w{5})) {3}(?'name'\w+?): +(?'desc'.+?)$ 
+0

這就是它!謝謝。 – alex555 2012-03-21 13:15:38

+0

@ alex555:不客氣。你能告訴我們你在用什麼語言? – Toto 2012-03-21 13:17:44

+0

可能是C#,如標籤所示:從文檔:(?)\t將匹配的子字符串捕獲到組名或數字名稱中。用於名稱的字符串不能包含任何標點符號,也不能以數字開頭。您可以使用單引號代替尖括號;例如(?'name')。 (請參閱:http://msdn.microsoft.com/en-us/library/bs2twtah(v=vs.71).aspx) – jessehouwing 2012-03-21 14:21:57

相關問題