我當我使用正則表達式類正則表達式收到以下異常字字符開頭:(?'命名a'asdf)無效的組名稱:組名稱必須與
System.ArgumentException: parsing \"(?'named a'asdf)\" - Invalid group name: Group names must begin with a word character.
什麼我的正則表達式有問題嗎?
我當我使用正則表達式類正則表達式收到以下異常字字符開頭:(?'命名a'asdf)無效的組名稱:組名稱必須與
System.ArgumentException: parsing \"(?'named a'asdf)\" - Invalid group name: Group names must begin with a word character.
什麼我的正則表達式有問題嗎?
問題是捕獲名稱中的空格。刪除空間,它工作正常。
從MSDN文檔: 「用於名稱的字符串不得包含任何標點符號,並且不能以數字開頭,您可以使用單引號代替尖括號;例如(?'name')。」
如果使用尖括號<>或單引號「'來表示組名稱,則無關緊要。
問題是圍繞命名捕獲組名稱的引號。嘗試字符串:(?<命名爲> asdf)
用於通過vengafoo提到MSDN文檔的參考是在這裏: Regular Expression Grouping Constructs
(?<name> subexpression)
捕獲匹配的子表達式成一組名稱或號碼的名稱。名稱中使用的字符串 不得包含任何標點符號,並且不能以 數字開頭。 您可以使用單引號代替尖括號;例如(?'name')。