Хотя вы не можете использовать регулярные выражения для анализа общего HTML, в этом случае вам, вероятно, это сойдет с рук. В Groovy вы можете использовать оператор (?s)
, чтобы точки соответствовали символам новой строки. Возможно, вам также следует использовать оператор (?i)
, чтобы сделать ваше регулярное выражение без учета регистра. Вы можете объединить их как (?is)
.
Например
def titleTagWithNoLineBreaks = "<title>This is a title</title>"
def titleTagWithLineBreaks = """<title>This is
a title</title>"""
// Note the (?is) at the beginning of the regex
// The 'i' makes the regex case-insensitive
// The 's' make the dot match newline characters
def pattern = ~/(?is)<title>(.*?)<\/title>/
def matcherWithNoLineBreaks = titleTagWithNoLineBreaks =~ pattern
def matcherWithLineBreaks = titleTagWithLineBreaks =~ pattern
assert matcherWithNoLineBreaks.size() == 1
assert matcherWithLineBreaks.size() == 1
assert matcherWithLineBreaks[0][1].replaceAll(/\n/,' ') == "This is a title"
Надеюсь, это поможет.