簡體   English   中英

正則表達式十六進制字符限制

[英]Regex hex character limit

我需要制作一個(C#)正則表達式來匹配具有一些規則的代碼:

  1. 接受的字符是十六進制(和大寫),(因此是 0-9 AF): ^[A-F0-9]*$
  2. 字符數在 9 到 10 之間: ^[A-F0-9]{9,10}$
  3. 同一個字符不能連續出現兩次以上(例如,不允許AAABCDEF0
  4. 代碼中不超過 5 個字母(例如,不允許使用A1BC2E3FF4
  5. 不超過兩個數字相等(例如,不允許使用A1BC1E1234
  6. 不超過三個字母相等(例如,不允許使用A1AA1234A5

請記住,規則 3-6 可以出現在句子中的任何位置,不一定是開頭)。 如果你們中的任何人可以幫助我解決 3 到 6 之間的任何規則,我將不勝感激:)

謝謝!

您的問題似乎無處不在(家庭作業?)...您要解決的問題是什么?

如果你想自己做,為了讓你開始,你應該嘗試學習積極和消極的前瞻

它們通常是在字符串上添加條件的好方法。

例如,這個正則表達式將( (?:...)是一個非捕獲組):

#^(?=.{9,10}$)(?!(?:.*[A-Z]){6})[A-F0-9]*$

^
(?=.{9,10}$)            # check the regex is 9 or 10 charac long
(?!(?:.*[A-Z]){6})      # check there are no more than 5 letters
[A-F0-9]*$              # actually match the string (not mandatory if you just need to validate)

如果你想在線測試它,regex101 通常是一個很好的學習和閑逛的網站。

祝你好運 !

暫無
暫無

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

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