我想从:
中提取alpha-beta
text = "alpha-beta-1.0.txt"
得到:
output = "alpha-beta"
有人可以帮助我使用正则表达式吗?
答案 0 :(得分:3)
如果您遇到计算机编程问题,并且您认为“我将使用 正则表达式!“,现在你有两个问题。
这里没有正则表达式:
strings = [
"alpha-beta-1.0.txt",
"alpha-beta-theta-2.0.txt",
"alpha-3.0.text",
]
strings.each do |string|
output = string.rpartition('-')[0]
puts output
end
--output:--
alpha-beta
alpha-beta-theta
alpha
答案 1 :(得分:1)
如果您想在最后<af:panelBox />
之前提取,可以使用此正则表达式
-
要查找所有不重叠的匹配项,您可以使用(^.*)-(?:.*$)
作为
scan
<强> Ideone Demo 强>
您也可以使用str = "alpha-beta-1.0.txt"
print str.scan(/(^.*)-(?:.*$)/)[0][0]
作为
lookahead
答案 2 :(得分:0)
根据我们提出的信息:
output = "alpha-beta-1.0.txt".match(/(.*-.*)-.*/)[1]
.*
虽然匹配很多。所以也许你需要一个更严格的匹配。