簡體   English   中英

正則表達式 Track1 磁條

[英]Regex Track1 Magnetic Stripe

如何按照以下規則在 Track1 中為名稱創建正則表達式規則:

  • 允許的字符為:ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789 .()-$
  • 不允許的字符是:^!"&'*+,:;<=>@_[]#%?
  • 必需字符 - 僅必須字符/出現
  • 最大大小為 26 個字符,最小大小為 2。

我試過了:

\^[^\^!"&'*+,:;<=>@_\[\]\\#%?]{2,26}\^ Result FAIL: removing "/" will pass pattern 
\^([-.()0-9a-zA-Z]*\/[-.()\w\s\/]*){1,26}\^ Result FAIL: more than 26 characters will pass pattern
^[-.()\w\s\/]{2,26}\^ Result FAIL: removing "/" will pass pattern

Track1 中的名稱示例:

  • ^ TEST/TEST ^- 應該通過
  • ^ TEST TEST ^- 應該失敗
  • ^ TEST/TE/ST ^ - 應該失敗
  • ^ TEST/TE+ST ^ - 應該失敗

謝謝!

如果必須在開頭和結尾處至少有^ ,並且必須至少有一個/ ,那么最小字符數將是 3 而不是 2。

在這種情況下,您可以使用:

\^(?=[A-Z .()\/-]{1,24}\^)[A-Z .()-]*\/[A-Z .()-]*\^

解釋

  • \^匹配^
  • (?=[AZ .()\/-]{1,24}\^)正向前瞻,斷言 1,24 個允許的字符后跟^到右邊,總共 2-26 個字符
  • [AZ .()-]*\/[AZ .()-]*匹配/在可選的允許字符之間
  • \^匹配^

查看正則表達式演示

如果/不能在開頭或結尾(在這種情況下至少匹配 5 個字符)

\^(?=[A-Z .()\/-]{1,24}\^)[A-Z .()-]+\/[A-Z .()-]+\^

查看另一個正則表達式演示

暫無
暫無

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

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