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

Ruby 2.4.2正则表达式需求:除句号后接asd外按句号分割字符串

解决Ruby中按句号分割但排除特定后续内容的问题

嘿,作为正则新手遇到这种场景太正常了,别慌!你需要的是用正则表达式的正向负向预查来精准控制分割时机。

问题分析

你原来的str.split(/\./)会把所有句号都当成分割符,所以把qwer.asd也拆成了两部分。我们要做的是:只分割那些**后面没有紧跟asd**的句号。

解决方案

用这个正则作为分割符就可以实现需求,对应的Ruby代码如下:

str = "qwer.qwer.asd"
output = str.split(/\.(?!asd)/)
puts output.inspect  # 输出 => ["qwer", "qwer.asd"]

正则逻辑拆解

  • \.:匹配句号本身(因为句号在正则里是匹配任意字符的通配符,必须加反斜杠转义才能匹配真实的句号)
  • (?!asd):这是正向负向预查,意思是“当前位置的后面不能紧接着出现asd这三个字符”。它不会消耗任何字符,只是做一个条件判断,所以完全不会影响qwer.asd里的内容保留。

如果之后需要调整排除的后缀,直接把asd换成目标内容就行啦!

内容的提问来源于stack exchange,提问作者Pedro Sturmer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:24:52