gpt4 book ai didi

python - 为什么我的正则表达式不能在 Python 中工作?

转载 作者:行者123 更新时间:2023-12-01 05:25:12 24 4
gpt4 key购买 nike

我想要匹配的是这样的:

public FUNCTION_NAME
FUNCTION_NAME proc near
......

FUNCTION_NAME endp

FUNCTION_NAME 可以是:

version_etc
version_etc_arn
version_etc_ar

我的模式是:

pattern = "public\s+" + func_name + "[\s\S]*" + func_name + "\s+endp"

并匹配:

match = re.findall(pattern, content)

所以目前我发现如果fuction_name等于version_etc,那么它将匹配所有的version_etc_arn、version_etc_ar和version_etc......

这意味着如果模式是:

“public\s+”+“version_etc”+“[\s\S]*”+“version_etc”+“\s+endp”

然后它将匹配:

public version_etc_arn
version_etc_arn proc near
......

version_etc_arn endp

public version_etc_ar
version_etc_ar proc near
......

version_etc_ar endp

public version_etc
version_etc proc near
......

version_etc endp

我正在尝试匹配:

public version_etc
version_etc proc near
......

version_etc endp

我错了吗?有人可以给我一些帮助吗?

谢谢!

最佳答案

[\s\S]* 匹配 0 个或多个任何内容,包括您尝试排除的 _arn。因此,您需要在 func_name 之后需要一个空格:

pattern = r"(?sm)public\s+{f}\s.*^{f}\s+endp".format(f=func_name)

关于python - 为什么我的正则表达式不能在 Python 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21500758/

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