用于特定字符串匹配的正则表达式

时间:2012-01-13 17:04:01

标签: ruby regex ruby-on-rails-3 mongodb

我需要一个正则表达式来匹配像

这样的东西

“4f0f30500be4443126002034”

“4f0f30500be4443126002034> 4f0f31310be4443126005578”

但不喜欢

“4f0f30500be4443126002034> 4f0f31310be4443126005578> 4f0f31310be4443126005579”

3 个答案:

答案 0 :(得分:1)

尝试:

^[\da-f]{24}(>[\da-f]{24})?$

[\da-f]{24}正好是24个字符,仅包含0-9,a-f。整个模式是一个这样的数字,可选地后跟一个>还有第二个这样的号码。

答案 1 :(得分:1)

我想你想要这样的东西:

/^[0-9a-f]{24}(>[0-9a-f]{24})?$/

匹配0-9a-f范围内的24个字符(与您的第一个字符串匹配),后跟零或一个以>开头的字符串,后跟0-9a-f范围内的24个字符(它匹配你的第二个字符串)。 Here's a RegexPal for this regex

答案 2 :(得分:0)

不需要正则表达式。

str = "4f0f30500be4443126002034>4f0f31310be4443126005578"

match = str.count('>') < 2

对于有1或0'&gt;'的匹配,

匹配将设置为true在字符串中。否则匹配设置为false。