gpt4 book ai didi

java - 捕获重复命名的组

转载 作者:行者123 更新时间:2023-12-02 04:48:59 26 4
gpt4 key购买 nike

我有以下字符串class teacher john smith pupils max power al bundy我怎样才能捕获史密斯先生类(class)的所有学生并命名为小组?

我创建了这个正则表达式 (?:^class teacher )(?<teacher>(?<first>\w+) (?<last>\w+)) pupils (?<pupil>(?<pfirst>\w+) (?<plast>\w+) )+但它遗漏了瞳孔 al bundy .

在 Java 和 Regex101 上进行了测试.

最佳答案

您无法重复捕获组,因为最后一个匹配的值将覆盖前一个。

解决此类问题的一种方法是使用 find 方法和 \G anchor 来获取连续匹配:

(?:\G(?!\A) |\Aclass teacher (?<teacher>(?<first>\w+) (?<last>\w+)) pupils )(?<pupil>(?<pfirst>\w+) (?<plast>\w+))

demo

(显然另一种方法是捕获一组中的所有学生,然后将其分开)

关于java - 捕获重复命名的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425089/

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