[英]regular expression with hyphen in between numbers
我必須檢查用戶輸入的字符串是否采用特定格式,如下所示:
123-1234-1234567-1
即在前3位數后的連字符,然后在4位數之后的另一個連字符,在七位數后連字符,然后是一位數。
我用下面的正則表達式
@"^\(?([0-9]{3})\)?[-. ]?([0-9]{4})[-. ]?([0-9]{7})[-. ]?([0-9]{1})$"
它適用於上面的表達式,但它也會傳遞表達式而不是-
也
eg:- 123-1234-1234567-1 //pass
123123412345671 //also getting pass.
第二個字符串應該失敗。 我應該在正則表達式中做些什么改變來實現同樣的目標?
你可以簡單地使用:
^\d{3}-\d{4}-\d{7}-\d$
如果你想允許點和空格也作為分隔符,那么使用:
^\d{3}[-. ]\d{4}[-. ]\d{7}[-. ]\d$
問題是你有可選的量詞?
之后[. ]
[. ]
。 刪除它們,它應該工作正常
@"^\(?([0-9]{3})\)?[-. ]([0-9]{4})[-. ]([0-9]{7})[-. ]([0-9]{1})$"
的?
使前面的模式可選,因為它匹配0或1個字符。 所以在第二個例子中,正則表達式引擎安全地匹配零-
以匹配整個字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.