我正在尝试使用 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/