簡體   English   中英

如何更改此正則表達式以與.Net正則表達式引擎一起使用?

[英]How to change this regular expression to work with .Net regular expression engine?

我正在使用正則表達式按照以下條件驗證手機號碼:

  1. 最多12個數字。
  2. 它應該以零開始。
  3. 將只允許一個空間(在未定義的位置)
  4. 后面跟一個可選的分機號碼,最多五位數字,不包括#號

我的正則表達式如下所示:(我已經使用“ rubular”測試器對此進行了測試)

^((0((?=\d* \d*#)[\d ]{,11})(#\d{,5})?)|(0(?:\d{,10})(#\d{,5})?)|(0((?=\d* \d*$)[\d ]{,11})))$

但是它不適用於.net正則表達式引擎。

有人可以告訴我,在上一部分中,哪些部分不適用於.net正則表達式引擎? 如果我可以更改上述表達式中的任何內容,它將在.Net正則表達式引擎中工作嗎?

正則表達式中的唯一問題是您沒有在任何地方指定起始范圍..因此它應該是{0,11}{1,11}而不是{,11}


您也可以使用此簡化的正則表達式

^(?=(\S*[\s]\S*|\S*)$)0(\s?\d){1,11}\s?(#(\s?\d){1,5})?\s?$

\\S匹配任何非空格字符

(\\S*[\\s]\\S*|\\S*)$匹配0到許多非空格字符,后跟一個空格,然后是0到許多非空格字符,直到結尾,或者匹配所有非空格字符直到結尾

(?=)是一個positive lookahead ,它檢查是否發生了特定的模式,否則將不匹配!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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