gpt4 book ai didi

regex - 使用 RegEx 扫描组

转载 作者:行者123 更新时间:2023-12-05 01:05:10 28 4
gpt4 key购买 nike

以下代码的返回完全不是我所期望的:

iex(12)> Regex.scan(%r/(?<groupname>a)b(c)/g,"abcdabcd", capture: :groups)
[["a"], ["a"]]

有 2 个组,但结果中只出现命名的一组。并且组名也被完全忽略。

如果我使用named_capture,我会得到以下信息:
iex(14)> Regex.named_captures(%r/(?<groupname>a)b(c)/g,"abcdabcd", capture: :groups)
[groupname: "a"]

嗯,我认为结果
Regex.scan(%r/(?<groupname>a)b(c)/g,"abcdabcd", capture: :groups)

应该是
[["a", "c"], ["a", "c"]]    #=> including "anonymous groups"

或者
[[groupname: "a"], [groupname: "a"]] #=> include group name in the results

所以我的问题是为什么我必须在使用 Regex.scan 时在组捕获中命名组,以便完全忽略它们?

最佳答案

它发生的名字:groups是误导。它并不意味着所有的组,而只是命名的组。这就是为什么we are renaming :groups to :named in upcoming releases .您可以使用 capture: :all_but_first 获得您想要的行为。 .我将很快记录此选项。

关于regex - 使用 RegEx 扫描组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21881811/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com