簡體   English   中英

正則表達式,在數字之間用連字符表示

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

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