gpt4 book ai didi

regex - Perl 正则表达式 : Matching text with optional multi-line

转载 作者:行者123 更新时间:2023-12-04 04:44:21 25 4
gpt4 key购买 nike

我正在尝试从 Linux Make 文件中提取目标文件。以下是一些示例:

英特尔 E1000E:

e1000e-objs := 82571.o ich8lan.o 80003es2lan.o \
mac.o manage.o nvm.o phy.o \
param.o ethtool.o netdev.o ptp.o

切尔西 T3:
cxgb3-objs := cxgb3_main.o ael1002.o vsc8211.o t3_hw.o mc5.o \
xgmac.o sge.o l2t.o cxgb3_offload.o aq100x.o

Atheros ALX:
alx-objs := main.o ethtool.o hw.o

考虑到有多行是可选的并且可能有两行以上,我如何制作一个返回 := 之后内容的正则表达式?请注意,反斜杠是 Makefile 内容的一部分。

我只知道如何手动指定新行的数量,例如:
$obj_files_no_ext = "e1000";
my @filestmp = ($Makefile_contents =~ m/$obj_files_no_ext-objs\s*[\+\:]= (.*)\\\s*\n(.*)/g);

最佳答案

你可以试试这个:

$obj_files_no_ext-objs\s*:=\s*((?:(?:[^\s\\]*?\.o)[\s\n\r\\]*)+)

这将捕获属于某个 $obj_files_no_ext 的所有目标文件。在第 1 组中。

关于regex - Perl 正则表达式 : Matching text with optional multi-line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18417936/

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