gpt4 book ai didi

ruby - 包含 'OR' 管道的正则表达式匹配输入字符串中的管道

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:38 25 4
gpt4 key购买 nike

作为验证方法的一部分,我需要确保输入字符串(称为“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

如上面的脚本所示,如果主题包含这些字符,则会运行一个方法('dead'),从而停止脚本。

问题是上面的正则表达式也匹配管道 | 。这是一个问题,因为输入通常会包含管道。

例如

motif = "RR|H..R" 时,脚本停止,因为正则表达式匹配管道。

我曾尝试使用 \ 转义管道,但这不起作用...

任何帮助将不胜感激。

注意:这是 ruby​​ 脚本的一部分。

最佳答案

你应该使用:

motif.match(/[bjouxz]/)

因为在字符类管道内部按字面意思处理,即文字 | 而不是正则表达式 OR。

以下也将起作用(管道被视为正则表达式或):

motif.match(/(b|j|o|u|x|z)/)

但是在这里使用字符类会更好/更干净。

关于ruby - 包含 'OR' 管道的正则表达式匹配输入字符串中的管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19094002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com