[英]What's wrong with my Regex expression
我寫了一個Regex
來檢查字符串是否由9 digits
組成,如下所示,但這總是返回false
即使我的字符串為123456789
。
if (Regex.IsMatch(strSSN, " ^\\d{9}$"))
任何人都可以告訴我什么地方出了問題,也可以告訴我更好的方法是什么。我要實現的是,字符串應僅包含numeric data
,長度應為=9
空格在正則表達式中很重要(當然,在字符串開頭之前不能匹配空格字符)。 刪除它,一切都很好:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
另外,您通常希望對C#中的正則表達式使用逐字字符串,因此不必將反斜杠加倍,但這只是一種方便,而不是引起問題的原因:
if (Regex.IsMatch(strSSN, @"^\d{9}$"))
這應該工作
^\d{9}$
希望能有所幫助
您在"
和^
之間有一個空格,應該為:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
可能是模式開始處的空白嗎? 這似乎很奇怪,在行的開頭固定了一個空格,然后是一個數字。
這應該給您您想要的:
if (Regex.IsMatch(strSSN, "^\\d{9}$"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.