我想創建一個遵循以下規則的 RegEx:
- 圖案以字母 K 開頭
- 后跟任意數字 (0-9) 或任意字母 (az) 1 到 3 次。
- 符號 # 可以存在 0 次或 1 次,在起始 K 之后的任何位置。
- 模式必須以符號 $ 結尾。
我對第三條規則感到困惑。
到目前為止(^K)([0-9a-z]{1,3}),我已經提出了這一點:我認為前兩條規則是正確的。
一些正確的例子是:
- 卡布克$
- 卡#bc$
- K01#a$
- K#1ab$
uj5u.com熱心網友回復:
您可以使用
^K(?!.*#.*#)(?:#?[0-9a-z]){1,3}#?\$$
或者,它的變體:
^K(?!(?:.*#){2})(?:#?[0-9a-z]){1,3}#?\$$
^K(?!(?:[^#]*#){2})(?:#?[0-9a-z]){1,3}#?\$$
請參閱正則運算式演示。詳情:
^- 字串的開始K- 信K(?!.*#.*#)/(?!(?:.*#){2})/(?!(?:[^#]*#){2})-沒有兩個#立即允許當前位置的右邊(這可以確保如果有#,就只發生一次)(?:#?[0-9a-z]){1,3}- 出現一次、兩次或三次#?- 一個可選#字符[0-9a-z]- 小寫 ASCII 字母或數字
#?- 一個可選的#\$- 一個$字符$- 字串結束。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408166.html
標籤:
下一篇:從最后出現的字串中洗掉數字
