1

我需要匹配文本 --BB0 和 --EE0 之间的两行,所以我在 QT 中使用这个正则表达式:

QRegularExpression rx0("(--BB0\n)(.*)(\n.*--EE0)", QRegularExpression::MultilineOption | QRegularExpression::DotMatchesEverythingOption)

在这种情况下,此正则表达式正确匹配

QRegularExpressionMatch match = rx0.match("    --BB0\n    AAAA\n    BBBB\n    --EE0");

但是当我匹配实际的字符串时它什么也找不到

--BB0
signal our_ip_address      : std_logic_vector (31 downto 0)  :=   x"c0a80509" ;   -- 192.168.5.9
signal our_mac_address     : std_logic_vector (47 downto 0)  :=   x"002320212223";
--EE0

我在哪里做错了?

谢谢

4

1 回答 1

4

您不需要所有这些,只需使用以下表达式:

--BB0(.*?)--EE0

并使用QRegularExpression::DotMatchesEverythingOption,你不需要,QRegularExpression::MultilineOption因为你没有在你的正则表达式中使用^or 。$

比赛将在第 1 组进行。

正则表达式 101 演示

于 2013-10-11T09:24:15.260 回答