2008-09-23 70 views
3

我當我使用正則表達式類正則表達式收到以下異常字字符開頭:(?'命名a'asdf)無效的組名稱:組名稱必須與

System.ArgumentException: parsing \"(?'named a'asdf)\" - Invalid group name: Group names must begin with a word character. 

什麼我的正則表達式有問題嗎?

回答

6

問題是捕獲名稱中的空格。刪除空間,它工作正常。

從MSDN文檔: 「用於名稱的字符串不得包含任何標點符號,並且不能以數字開頭,您可以使用單引號代替尖括號;例如(?'name')。」

如果使用尖括號<>或單引號「'來表示組名稱,則無關緊要。

-1

問題是圍繞命名捕獲組名稱的引號。嘗試字符串:(?<命名爲> asdf)

4

用於通過vengafoo提到MSDN文檔的參考是在這裏: Regular Expression Grouping Constructs

(?<name> subexpression)
捕獲匹配的子表達式成一組名稱或號碼的名稱。名稱中使用的字符串 不得包含任何標點符號,並且不能以 數字開頭。 您可以使用單引號代替尖括號;例如(?'name')。