我需要像字符串那樣的「EWD-eb-AEW-97-QOW
」的正則表達式。用字母和十六進制表示的正則表達式
一般模式是: 3個大寫字母,十六進制,3個大寫字母,十六進制,3個大寫字母。
我用:
/[A-Z]{3}-\h-[A-Z]{3}-\h-[A-Z]{3}/
,但它不工作。任何人都可以幫助解釋它爲什麼不起作用嗎?
我需要像字符串那樣的「EWD-eb-AEW-97-QOW
」的正則表達式。用字母和十六進制表示的正則表達式
一般模式是: 3個大寫字母,十六進制,3個大寫字母,十六進制,3個大寫字母。
我用:
/[A-Z]{3}-\h-[A-Z]{3}-\h-[A-Z]{3}/
,但它不工作。任何人都可以幫助解釋它爲什麼不起作用嗎?
我會使用類似:
https://www.regex101.com/r/aY5eF6/1
(?:[A-Z]{3}-[a-f0-9]{2}-)
組三字母,'-'
,兩個十六進制字母和'-'
,然後做兩次,然後是t又是三個字母。
使用Ruby的正則表達式\h
延長關於:
我會使用特殊字符,如\h
在混合語言環境,或者一個被支持的Ruby舊版本要小心。我們使用YAML來包含各種語言之間共享的模式,類似這樣的事情將很難追蹤錯誤。我建議使用[a-f0-9]
,除非你知道你永遠不會遇到這個問題。
不,你不能' \ h'不代表十六進制值,它表示水平空白。使用'\ h'是模式中的一個致命缺陷,它與匹配目標字符串不匹配。 –
In Ruby'\ h'表示十六進制數字..見更新演示 –
http://regular-expressions.info/shorthand.html - >更多速記字符類 - >最後一行指的是''Ruby 1.9及更高版本他們自己的版本\ h。它匹配一個單一的十六進制數字,就像[0-9a-fA-F]「',僅供您參考.. –
太棒了!非常感謝! –
\ h匹配1位十六進制數字?..我在這裏丟失了一些東西.. https://regex101.com/r/mZ1aT2/3 –
http://www.regular-expressions.info/shorthand.html - >更多速記字符類 - >最後一行是指「Ruby 1.9及更高版本有自己的版本\ h。它與一個十六進制數字匹配,就像[0-9a-fA-F]」..這是錯誤的? –