簡體   English   中英

我的Regex表達式有什么問題

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

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