字符串格式检查(部分随机字符串)

时间:2011-11-24 14:49:07

标签: ruby-on-rails ruby regex

我想使用正则表达式检查我的字符串是否具有以下格式:

mc_834faisd88979asdfas8897asff8790ds_oa_ids
mc_834fappsd58979asdfas8897asdf879ds_oa_ids
mc_834faispd8fs9asaas4897asdsaf879ds_oa_ids
mc_834faisd8dfa979asdfaspo97asf879ds_dv_ids
mc_834faisd111979asdfas88mp7asf879ds_dv_ids
mc_834fais00979asdfas8897asf87ggg9ds_dv_ids

格式类似于mc_<random string>_oa_idsmc_<random string>_dv_ids。如何检查我的字符串是否采用这两种格式中的任何一种?请解释正则表达式。谢谢。

这是以mc_开头的字符串,以_oa_idsdv_ids结尾,中间有一些随机字符串

P.S。随机字符串由alpha-beta字母和数字组成。

我尝试了什么(我不知道如何检查随机字符串):

/^mc_834faisd88979asdfas8897asff8790ds$_os_ids/

3 个答案:

答案 0 :(得分:5)

试试这个。

^mc_[0-9a-z]+_(dv|oa)_ids$

^           matches at the start of the line the regex pattern is applied to. 
[0-9a-z]    matces alphabetic and numeric chars.
+           means that there should be one or more chars in this set
(dv|oa)     matches dv or oa
$           matches at the end of the string the regex pattern is applied to. 
     also matches before the very last line break if the string ends with a line break.

答案 1 :(得分:0)

尝试/\Amc_\w*_(oa|dv)_ids\z/\A是字符串的开头,\z结尾。 \w*是一个或多个字母,数字和下划线,(oa|dv)oadv

测试Ruby Regexps的一种简单方法是Rubular,可能会看一下。

答案 2 :(得分:0)

这应该有效

/mc_834([a-z,0-9]*)_(oa|dv)_ids/g

示例:http://regexr.com?2v9q7