Ruby 正则表达式得到由句点分隔的单词组合

标签 ruby regex

我正在尝试使用 Ruby 正则表达式来获取如下所示的单词组合。 在下面的示例中,我只需要案例 1-4,* 将它们标记为大写以便于测试。中间的单词 (dbo, bcd) 可以是任何东西,也可以什么都不是,就像 case#3 中那样。我无法使那个双周期案例 #3 正常工作。将独立的 SALES 作为单词也很好,但对于一个正则表达式来说可能太多了?Tx all guru。 这是我的部分工作的脚本,需要添加 alpha..SALES

 s = '1 alpha.dbo.SALES    2 alpha.bcd.SALES    3 alpha..SALES    4 SALES
      bad cases 5x alpha.saleS  6x  saleSXX'

 regex = /alpha+\.+[a-z]+\.?sales/ix
 puts 'R: ' + s.scan(regex).to_s

##R: ["alpha.dbo.SALES", "alpha.bcd.SALES"]

最佳答案

s = '1 alpha.dbo.SALES    2 alpha.bcd.SALES    3 alpha..SALES    4 SALES
bad cases 5x alpha.saleS  6x  saleSXX 7x alpha.abc.SALES.etc'

regex = /(?<=^|\s)(?:alpha\.[a-z]*\.)?(?:sales)(?=\s|$)/i
puts 'R: ' + s.scan(regex).to_s

输出:

R: ["alpha.dbo.SALES", "alpha.bcd.SALES", "alpha..SALES", "SALES"]

关于Ruby 正则表达式得到由句点分隔的单词组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52345491/

相关文章:

ruby - 小脚本在 Ruby 中的循环问题

ruby-on-rails - Ruby on Rails 调用对象的方法

Spark SQL 中的 SQL LIKE

Python正则表达式匹配完整或部分单词

python - 如何在python re中通过字符串修饰符否定默认的IGNORECASE

java - 将可变长度的点分隔数字序列与正则表达式进行匹配

ruby-on-rails - 打开 ("url or file name")并要求 'open-uri' 无法在 Rails 上运行 ruby

ruby - 如何合并数组索引值并创建哈希

Ruby:使用散列访问实例方法

regex - 正则表达式: match x times OR y times