使用Groovy/Java从文本中获取特定的字符串可以通过正则表达式来实现。以下是一个示例代码:
import java.util.regex.Matcher
import java.util.regex.Pattern
def getTextBetweenStrings(String text, String start, String end) {
def pattern = Pattern.compile("(?i)\\Q${start}\\E(.*?)\\Q${end}\\E")
def matcher = pattern.matcher(text)
def result = []
while (matcher.find()) {
result << matcher.group(1)
}
return result
}
def text = "This is a sample text. StartTag This is the content we want to extract. EndTag Another StartTag More content to extract. EndTag"
def startTag = "StartTag"
def endTag = "EndTag"
def extractedStrings = getTextBetweenStrings(text, startTag, endTag)
println(extractedStrings)
上述代码中,getTextBetweenStrings
方法接受三个参数:text
表示待处理的文本,start
表示起始标记,end
表示结束标记。该方法使用正则表达式来匹配起始标记和结束标记之间的内容,并将匹配到的内容存入一个列表中返回。
在示例代码中,我们使用了非贪婪模式(.*?
)来匹配最短的内容。如果需要匹配多个起始标记和结束标记之间的内容,可以使用循环来多次调用matcher.find()
方法。
对于给定的文本和标记,上述代码将输出以下结果:
[This is the content we want to extract., More content to extract.]
这是从文本中提取的两个特定字符串。
请注意,上述代码仅为示例,实际使用时可能需要根据具体需求进行修改。
领取专属 10元无门槛券
手把手带您无忧上云