我需要像字符串那样的“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]”..这是错误的? –