gpt4 book ai didi

regex - 替换 groovy 中的捕获组

转载 作者:行者123 更新时间:2023-12-05 03:06:36 25 4
gpt4 key购买 nike

我是 groovy 的新手,一直在尝试这个

我的目标字符串可以以wherethere 开头,后面可以跟任意数量的.(点字符)和一个单词。我需要用 _(下划线)替换所有 .(点字符)

任何不是以wherethere开头的都不应被替换

示例字符串是

    hey where.is.the book on.brown.table 
hey there.is.a.boy.in.the city Delhi
hey here.is.the.boy living next door

预期输出是

    hey where_is_the book on.brown.table 
hey there_is_a_boy_in_the city Delhi
hey here.is.the.boy living next door

我能够匹配准确的模式。使用 /(where|there)\.((\w+)(\.))+/,但是当我使用 replaceAll 时,我得到的结果不正确。

最佳答案

你可以使用

/(\G(?!\A)\w+|\b(?:where|there)\b)\./

或者如果你只需要处理这两个词:

/(\G(?!\A)\w+|\b[wt]here\b)\./

替换为 $1_。查看regex demo .

详情

  • (\G(?!\A)\w+|\b(?:where|there)\b) - 第 1 组捕获:
    • \G(?!\A)\w+| - 上一场比赛的结尾(\G(?!\A)),然后是 1+ 个单词字符 (\w+), 或
    • \b(?:where|there)\b - wherethere 整个单词(您甚至可以将其写为\b[tw]这里\b如果你只需要处理这2个词)
  • \. - 一个点。

参见 Groovy demo :

String s = "hey where.is.the book on.brown.table\nhey there.is.a.boy.in.the city Delhi\nhey here.is.the.boy living next door"
print s.replaceAll(/(\G(?!\A)\w+|\b(?:where|there)\b)\./, '$1_')

输出:

hey where_is_the book on.brown.table
hey there_is_a_boy_in_the city Delhi
hey here.is.the.boy living next door

关于regex - 替换 groovy 中的捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49052748/

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