0

我试图在 IRB 中计算出一个正则表达式并得到了一些意想不到的输出。目标是匹配所有内容,直到 FQDN 中的最后一个点。

因此,例如,如果我试图匹配 string "flowtechconsulting.com",我从以下开始:

s1.sub(/^(.*)\\./, "\\1")   #=> "flowtechconsultingcom"

但是,该sub函数仅返回除点之外的所有内容,而不是第一个匹配组。

如果我添加两个匹配的组,它会起作用:

s1.sub(/^(.*)\\.(.*)$/, "\\1")   #=> "flowtechconsulting"

我只是不确定为什么第一个不起作用。似乎应该如此。

4

2 回答 2

1

/^(.*)\./只捕获所有内容。“com”没有被捕获,因此在替换中没有被替换。

于 2013-04-02T18:08:04.953 回答
0

忘记sub,并执行以下操作:

"foo.bar.baz.com"[/(.*)(?:\.)/, 1]
# => "foo.bar.baz"
于 2013-04-02T18:07:36.567 回答