簡體   English   中英

匹配帶有特殊字符的正則表達式

[英]Matching Regex with special characters repeated

有一個測試字符串。

  1. 由8位數字組成。
  2. 必須有---- . :分隔符,以使字符串分成幾部分,每部分恰好有兩位數字。
  3. 字符串必須完全具有一種分隔符。
  4. 分隔符兩邊都必須有整數

我無法滿足第三條件

我的答案: ^(\\d{2}(([-]{3})|.|:|-)){3}(\\d){2}$

示例:1. 11---11---11---11 2. 11:11:11:11

請幫忙 。

請注意,要求轉換為格式為##:##:##:##的字符串,即兩個數字,后跟分隔符等。

您可以為每種分隔符類型使用模式,並交替使用所有四種分隔符類型:

^(?:\d{2}---\d{2}---\d{2}---\d{2})|
 (?:\d{2}-\d{2}-\d{2}-\d{2})|
 (?:\d{2}\.\d{2}\.\d{2}\.\d{2})|
 (?:\d{2}:\d{2}:\d{2}:\d{2})$

我將正則表達式分成多行以提高可讀性。

演示在這里:

正則表達式101

此正則表達式可以簡化為:

^(?:\d{2}---){3}\d{2}|(?:\d{2}-){3}\d{2}|(?:\d{2}:){3}\d{2}|(?:\d{2}\.){3}\d{2}$

但是我實際上更喜歡較長的開放形式,因為它更易於閱讀。

更簡單的答案:^(?:\\ d {2}(-){3}){3} \\ d {2} |(?:\\ d {2}-){3} \\ d {2} |(? :\\ d {2}:){3} \\ d {2} |(?? \\ d {2}。){3} \\ d {2} $

暫無
暫無

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

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