簡體   English   中英

如何使用正則表達式匹配此字符串?

[英]How to match this string use Regex?

我有兩個字符串:

(123)4567890
1234567890

()必須都存在,或都省略。 目前,我使用此正則表達式:

(?:(?:\(\d{3}\))|(?:\d{3}))\d{7}

使用OR來匹配以下兩種情況之一:

\(\d{3}\)
\d{3}

出於好奇,我該如何檢查最后一場比賽(在當前比賽中( (或沒有))(檢查) )? 您能建議我另一種方法來達到相同的結果嗎?

您可以使用條件構造 :捕獲一個可選的開頭(然后匹配3位數字,然后檢查Group 1是否為空,如果不是,則匹配結束)

(\()?\d{3}(?(1)\))\d{7}

參見regex演示 根據要求添加錨點/邊界。

細節

  • (\\()? -與( char
  • \\d{3} -3位數字
  • (?(1)\\)) -如果第1組相匹配,匹配一個)
  • \\d{7} -7位數字。

暫無
暫無

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

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