Groovy - 在两个不同的字符串之间提取字符串[重复]

Posted

技术标签:

【中文标题】Groovy - 在两个不同的字符串之间提取字符串[重复]【英文标题】:Groovy - Extract a string between two different strings [duplicate] 【发布时间】: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

【问题讨论】:

【参考方案1】:

使用环视绝对是可能的:

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

Demo

【讨论】:

def regexformat = "(?&lt;=_)[^._]*(?=\.)" Matcher digitMatcher = Pattern.compile(regexformat).matcher(jsoname); 我正在尝试这种方式,但我看到了错误unexpected char: '\'。请有任何建议。 jsoname 会有我的文件名 发现问题,需要多一个`\` 感谢 PJ。这就像一个魅力!

以上是关于Groovy - 在两个不同的字符串之间提取字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

提取每组两个不同字符串之间的每个字符串

提取两个单词之间的字符串,具有多种模式

如何在SOAP UI中使用groovy从字符串中提取数字id

两个字符串之间的 MySQL 子字符串

如何使用 HTTPBuilder 在 Groovy 中设置 GET-Response

正则表达式在两个字符串(它们是变量)之间提取