簡體   English   中英

可選字符的正則表達式

[英]regex for optional characters

我使用以下正則表達式:

^([W|w][P|p]|[0-9]){8}$

上面的正則表達式也接受wp1234567wp +7位)。 預期: WP + 6digit或wp + 6digit或僅8位數

例如:

WP123456
wp126456
64535353

注意[W|w]匹配Ww| ,自| 在一個字符類中失去了它對交替運算符的特殊含義。 此外,通過在[W|w][P|p]|[0-9]周圍設置分組(...) ,您可以匹配WP 數字的整個序列的8次出現。

您應該在有限量詞中設置正確的值並刪除分組並使用交替以允許wp +6位數或僅8位數:

^(?:[Ww][Pp][0-9]{6}|[0-9]{8})$

演示

正則表達式匹配:

  • ^ - 字符串的開頭(如果用String#matches()檢查整個字符串,則不需要)
  • (?:[Ww][Pp][0-9]{6}|[0-9]{8}) - 2個替代方案:
    • [Ww][Pp][0-9]{6} - Ww后跟Pp后跟6位數
    • | - 要么...
    • [0-9]{8} - 正好是8位數
  • $ - 結束字符串

其他場景(以防萬一):

如果您需要匹配由7或8位數字組成的字符串,則需要將{8}有限量詞替換為{7,8}

^(?:[Ww][Pp][0-9]{6}|[0-9]{7,8})$

如果您不想匹配Wp123456wP123456 ,請在開頭再使用一次:

^(?:(?:WP|wp)[0-9]{6}|[0-9]{8})$

暫無
暫無

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

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