,包括任意位置的换行符-6ren
gpt4 book ai didi

regex - 正则表达式匹配<title> ,包括任意位置的换行符

转载 作者:行者123 更新时间:2023-12-02 14:57:42 26 4
gpt4 key购买 nike

我正在尝试编写一个从URL提取的正则表达式,但是问题是“。”与我们已经知道的不匹配换行符。如何编写正则表达式以匹配和提取pageTitle(。*?),但换行符可能介于

我在用grails。

最佳答案

尽管您不能使用正则表达式来解析常规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"

希望能有所帮助。

关于regex - 正则表达式匹配&lt;title&gt; </title>,包括任意位置的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657046/

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