gpt4 book ai didi

Python 正则表达式匹配 C++ typedef'd 枚举

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

我需要一些帮助来构建与以下字符串格式匹配的正则表达式:

typedef enum x
{
...
} z;

我想要获取 x 和 z 的值,即使它们没有指定。

谢谢!

最佳答案

import re
str_typedef = """typedef enum x
{
...
} z;"""
pattern = 'typedef\s+enum\s+([a-zA-Z0-9_]+)\s*{[^{}]*}\s*([a-zA-Z0-9_]+)\s*;'
rs = re.findall(pattern, str_typedef)
for r in rs:
enum_type_name = r.group(1)
enum_name = r.group(2)
# do operations with results here, or store to an array
# of dictionaries for use later.

这里,enum_type_name 最终将是“x”或替代 x 的任何其他名称,enum_name 最终将是“z”或任何其他名称代替 z。

表达式的快速总结:

每个 \s+ 是一个或多个空格或换行符,每个 \s* 都是相同的,但使空格可选。

每个 ([a-zA-Z0-9_]+) 都会捕获并存储一组 C++ 变量/类/枚举名称的一个或多个字母数字字符。

{[^{}]*} 表示 { 后跟任意数量的非 { 字符},然后是 }

关于Python 正则表达式匹配 C++ typedef'd 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19919537/

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