首頁  >  問答  >  主體

java或scala中正規表示式的簡化問題

現有一個需求,要求偵測某個字串是否為6個八位元的十六進位數字以下劃線相連,
例如:"1234567F_1234567F_1234567F_1234567F_1234567F_1234567F_1234567F_1234567F_1234567F_1234567F_1234567F_1234567F」#我寫#我112了一個正規進行匹配,如下:

"^[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}_[0-9a-fA-F]{8}$"

這個正規可以匹配成功,但是感覺太複雜了,重複的內容太多,能不能簡化?

学习ing学习ing2686 天前657

全部回覆(2)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:27:26

    我可能這麼寫^([0-9a-fA-F]{8}_){5}[0-9a-fA-F]{8}$.

    既然題主能用{8}了,那可以考慮把前面 八位十六進位數字+'_' 也用個數字來表示出現次數了。

    回覆
    0
  • 怪我咯

    怪我咯2017-06-12 09:27:26

    可以把[0-9a-fA-F]再簡化一下:

    ^([^\W_]{8}_){5}[^\W_]{8}$

    回覆
    0
  • 取消回覆