【问题标题】:Groovy - Extract a string between two different strings [duplicate]Groovy - 在两个不同的字符串之间提取字符串[重复]
【发布时间】:2018-05-11 14:03:26
【问题描述】:

我有以下格式的文件名 -

India_AP_Dev1.txt
USA_GA_QA2.txt
USA_NY_AWSDev1.txt
AUS_AA_BB_QA4.txt

我只想从文件名中提取环境部分,即Dev1, QA2, AWSDev1, QA4etc。我该如何处理这种类型的文件名。我想过substring,但环境长度不是恒定的。是否可以使用regex

感谢您的帮助。 TIA

【问题讨论】:

    标签: regex groovy


    【解决方案1】:

    使用环视绝对是可能的:

    (?<=_)[^._]*(?=\.)
    
    • (?&lt;=_) 匹配前面是 _
    • [^._] 取除._ 之外的所有字符
    • (?=\.) 匹配后跟 .

    Demo

    【讨论】:

    • def regexformat = "(?&lt;=_)[^._]*(?=\.)" Matcher digitMatcher = Pattern.compile(regexformat).matcher(jsoname); 我正在尝试这种方式,但我看到了错误unexpected char: '\'。请有任何建议。 jsoname 会有我的文件名
    • 发现问题,需要多一个`\`
    • 感谢 PJ。这就像一个魅力!
    猜你喜欢
    • 2015-05-04
    • 1970-01-01
    • 2018-07-26
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多