簡體   English   中英

沒有檢測到兩個字符之間的文本?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM