Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式匹配c++;typedef';d枚举_Python_Regex_Parsing_Match_Findall - Fatal编程技术网

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

Python正则表达式匹配c++;typedef';d枚举,python,regex,parsing,match,findall,Python,Regex,Parsing,Match,Findall,我需要一些帮助来构建与以下字符串格式匹配的正则表达式: 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_ty

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

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*
都是相同的,但使空白成为可选的

每个<代码>([AZ-Z099])< /C>将捕获并存储一组或多个字母数字字符,用于C++变量/Copy/Enm名称。< /P>


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

如果未指定,如何获取值?