Regex 在类似变体中查找部分字符串匹配

Regex 在类似变体中查找部分字符串匹配,regex,ruby,string,Regex,Ruby,String,我正在循环浏览一系列基于字符串的歌曲标题。我的目标是找出我的基本标题是否存在于数组中相同的标题,但可能包含/额外的字符。我目前使用的一些技术遇到了一些问题。使用包括?下套管时,我必须测试两种方法: "The Girl Is Mine (Paul McCartney)".downcase.include? "The Girl Is Mine" || "The Girl Is Mine".downcase.include? "Th

我正在循环浏览一系列基于字符串的歌曲标题。我的目标是找出我的基本标题是否存在于数组中相同的标题,但可能包含/额外的字符。我目前使用的一些技术遇到了一些问题。使用
包括?
下套管时,我必须测试两种方法:

"The Girl Is Mine (Paul McCartney)".downcase.include? "The Girl Is Mine" || "The Girl Is Mine".downcase.include? "The Girl Is Mine (Paul McCartney)"
我遇到了
match?
,但是一旦添加了额外的字符,事情就不起作用了

"The Girl Is Mine".match? /The Girl Is Mine (feat. Paul McCartney)/i
=> false

目标是找到字符的开始序列,不区分大小写:
“女孩是我的”
。我真的不需要任何复杂的东西,所以如果这可以在没有算法的情况下完成,我洗耳恭听。如果没有,我还是洗耳恭听。

如果你真的想用正则表达式来做这件事,看起来你缺少了匹配实际搜索词前后任何内容所必需的通配符

"The Girl Is Mine (Paul McCartney)".match(/.*The girl is mine.*/i)

逃离特殊角色。@WiktorStribiżew我不同意dup。询问者并不是特别希望在regexp中嵌入字符串,他们正在寻找一些更通用的基于字符串的搜索功能(可能仍然会因为太宽而关闭它)@Max See“一旦额外的字符出现,事情就不起作用了”-regex字符串包含parenethese和一个点,这些是特殊的正则表达式元字符,它们是问题的根源。副本很好,我添加了另一个副本,解释了在正则表达式中必须转义哪些字符。@WiktorStribiżew正则表达式在这种情况下毫无意义。Ruby可以显式地检查子字符串,而无需构造子字符串。我认为提问者很困惑,因为即使没有特殊字符的干扰,他们似乎也不知道应该匹配哪种字符串(参见我的答案)@Max那么如果已经有了,为什么还要另一个答案呢?