无法使用正则表达式捕获

Can't capture with Regex

我正在尝试从以下文本中获取地址数据。

<address>
Firstname Lastname<br />
Address 1<br />
ZIP City<br />
Country</address>

我试过的正则表达式是(?<=>)(.*)(?=<\Q/\Eaddress)

由于某种原因,它无法捕获任何内容。

我对正则表达式完全陌生,所以我真的什么都不懂。我只知道我发现的以下正则表达式捕获

之间的数据
(?<="from here")(.*)(?="to here")

我也逃脱了斜杠。

任何帮助将不胜感激。谢谢!

虽然您应该避免使用正则表达式解析 HTML,但由于您的案例似乎是一个简单的非嵌套标签案例,您可以使用以下正则表达式捕获标签之间的所有数据并捕获第 1 组中的数据,

(?s)<address>(.*?)<\/address>

由于您的数据似乎出现在多行中,因此您需要在正则表达式中添加 (?s) 标志,使点能够匹配新行字符。

Here is the Demo

并且,在您自己的正则表达式中,您几乎不需要更正并使用 (?s) 标志,就像我上面描述的那样,使其工作。您的正则表达式版本可以像这样更正和使用,

(?s)(?<=>)(.*?)(?=<\/address)(用 \ 转义 /

(?s)(?<=>)(.*?)(?=<\Q/\Eaddress)(不需要转义/如果放在\Q和\E之间)

Demo for your regex