gpt4 book ai didi

regex - R 正则表达式 : find the last but one match

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

我需要一个正则表达式脚本(用 R 语言)来找到最后一个匹配项。

这是一个例子:

input = c("(test1(test2(test3","(((((othertest1(othertest2(othertest3")
regexpr('the_right_regular_expression_here_which_can_finds_the_last_but_one_'(' ', input)

结果必须是:716,因为在第一种情况下,最后一个 '(' 位于第 7 个位置(从左起),并且在第二种情况下,最后一个“(”位于第 16 个位置(从左起)。

我找到了一个可以找到最后一个匹配项的正则表达式,但我无法以正确的方式转换它:

\\([^\\(]*$

感谢您的帮助!

最佳答案

要匹配以最后一个 ( 开头的文本 block ,您可以使用

"(\\([^(]*){2}$"

详细信息:

  • (\\([^(]*){2} - 2 个序列:
    • \( - 文字 (
    • [^(]* - (
    • 以外的零个或多个字符
  • $ - 字符串结尾。

R 测试:

> input = c("(test1(test2(test3","(((((othertest1(othertest2(othertest3")
> regexpr("(\\([^(]*){2}$", input)
[1] 7 16
attr(,"match.length")
[1] 12 22
attr(,"useBytes")
[1] TRUE

关于regex - R 正则表达式 : find the last but one match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39019373/

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