[英]Not detecting the text between two characters?
我需要識別標簽[DN] 4 [-DN]之間的數字,所以我寫了這個正則表達式:
Regex regexCount = new Regex(@"\[DN]([^)]*)\[-DN]");
Match matchCount = regexCount.Match("[DN]4[-DN]");
但是,當我嘗試將字符串匹配轉換為Int32時,出現此錯誤:
輸入的字符串格式不正確。
這是我嘗試轉換的方式:
int count = Convert.ToInt32(matchCount.Value);
調試時,我看到匹配的值返回{[DN]2[-DN]}
而不是2 。 但是,regex101測試使用相同的regex給出了正確的結果: regex101
我在做什么錯的人?
您目前正在返回整個比賽。 您需要從捕獲組中返回匹配的上下文。 Groups屬性在正則表達式中獲取捕獲的組。
int Count = Convert.ToInt32(matchCount.Groups[1].Value);
此外,否定的字符類似乎不正確,我將改用正則表達式令牌\\d
。
@"\[DN](\d+)\[-DN]"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.