You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Ruby正则精确匹配"and/or"并更新现有分割正则?

解决方案

要让正则同时支持匹配空格包裹的and/or(不区分大小写)以及and/or,只需在原有备选分支前添加and/or的匹配规则即可,注意要优先匹配完整的and/or避免被拆分。

更新后的正则表达式

使用传统斜杠分隔符(需转义/):

/ (?i)(?:and\/or|and|or) /

或者用%r分隔符(无需转义/,更简洁):

%r{ (?i)(?:and/or|and|or) }

代码示例

# 测试"and/or"场景
name = "Elvin and/or Jafarli"
name.split(/ (?i)(?:and\/or|and|or) /)
# => ["Elvin", "Jafarli"]

# 测试原有"and"场景
name2 = "Elvin AND Jafarli"
name2.split(/ (?i)(?:and\/or|and|or) /)
# => ["Elvin", "Jafarli"]

# 测试原有"or"场景
name3 = "Elvin or Jafarli"
name3.split(/ (?i)(?:and\/or|and|or) /)
# => ["Elvin", "Jafarli"]

正则说明

  • (?i):保持原有不区分大小写的匹配特性,兼容And/Or、AND/OR等大小写变体。
  • (?:and\/or|and|or):非捕获分组,优先匹配完整的and/or,再匹配单独的and或or,避免把and/or拆分成and导致错误分割。
  • 前后空格:确保只匹配被空格包裹的分隔符,避免误匹配字符串内部的子串(比如hand里的and)。

内容的提问来源于stack exchange,提问作者Elvin Jafali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 18:48:38