如何解读这个正则表达式

如何解读这个正则表达式,感觉用我找的资料的解读方式解读不出来:

self.lstOfParameters = re.findall('\w*:=.+\([^)]*\)|' 
                                  '\w*:=\s?\[[^]]*\]|' 
                                  '\w*:=[^,)\n]*',   
                                  self.entityInTextForm
                                  )

entityInTextForm的内容为:

CfgKinComposModel (
  key:="AB_45_HEAD_C_TABLE",
  subKinList:=[
    "SK_TOOLCARRIER",
    "SK_AB_45HEAD",
    "SK_ZXY_BASE",
    "SK_C_TABLE_MILL"
  ],
  activeSpindle:="S1"
)

这个写的太复杂了,看我为您解析解析一下,我的好理解, 请采纳哦:

partern = '(\w+):=((?:\".*?\")|(?:\[.*?\]))'

lstOfParameters = re.findall(partern,entityInTextForm,re.S)
for params in lstOfParameters:
    print(params)

结果如下:

img


解析如下:
(\w+):= 这里表示是 字母:=格式用于匹配前面的参数名称,括号表示把参数名解析出来;
(?:".?")|(?:[.?]) ?:表示不把当前括号内的数据提取出来,只匹配。中间的|表示或条件,第一条件表示两个”包括起来的参数值,第二个条件表示[和]包括起来的参数值,最外层的()表示把匹配到的值提取出来。

正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸) http://download.csdn.net/detail/zhao4zhong1/1808549


\w*:=.+\([^)]*\)|\w*:=\s?\[[^]]*\]|\w*:=[^,)\n]*

正则表达式的解读,是需要按片段解读的

首先,分成三个片段,因为中间有 | ,这个表示或的意思
\w*:=.+\([^)]*\)
\w*:=\s?\[[^]]*\]
\w*:=[^,)\n]*

然后对每个片段,再次划分片段
\w*:=.+\([^)]*\)
\w*
:
=
.+
\(
[^)]* 感觉这里不太对,好像少了个转义?
\)
其中 *、+之类的表示长度,\表示转义,[] 表示字符集

解读到此结束,如果想自己解读,可以参考文章。https://blog.csdn.net/superwfei/article/details/51753127?spm=1001.2014.3001.5502.