[英]How to change this regular expression to work with .Net regular expression engine?
我正在使用正則表達式按照以下條件驗證手機號碼:
我的正則表達式如下所示:(我已經使用“ 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.