作为验证方法的一部分,我需要确保输入字符串(称为“motif”)不包含某些字符(b,j,o,u,x,z)。
这就是我目前使用的:
if motif.match(/[b|j|o|u|x|z]/) #check whether the motif contains only amino acid residues and not other junk.
dead("The motif query must only contain the following characters "ACDEFGHIKLMNPQRSTVWY").)
end
如上面的脚本所示,如果motif包含这些字符,则运行一个方法('dead'),这将停止脚本。
问题是上面的正则表达式是它也匹配管道|
。这是一个问题,因为输入会定期包含管道。
e.g。
当motif = "RR|H..R"
时,脚本因正则表达式与管道匹配而停止。
我尝试使用\
转义管道,但这不起作用......
任何帮助都将非常感激。
注意:这是ruby脚本的一部分。
答案 0 :(得分:3)
您应该使用:
motif.match(/[bjouxz]/)
由于字符类管道内部按字面意思处理,即文字|
而不是正则表达式。
以下也可以(管道被视为正则表达式OR):
motif.match(/(b|j|o|u|x|z)/)
但是在这里使用字符类更好/更清洁。
答案 1 :(得分:0)
您还可以使用match
motif[/[bjouxz]/]