我有一些字符串,例如"members[value eq\"2819c223-7f76-453a-919d-413861904646\"].displayName"
,我尝试检索成员,括号中的字符串和displayname。
我试过了,matchObj = re.match( r"(.*)\[([.*]+)\?](.*?)", line, re.M|re.I)
括号中的字符串和最后一个字符串(之后.
)是可选的(这部分"[value eq\"2819c223-7f76-453a-919d-413861904646\"].displayName"
)。
我在这里做错了什么?
(\w+)(\[[^]]*\])?(\.\w+)?
\w
将匹配任何单词字符(字母,数字和下划线)
[a-zA-Z]
仅匹配字母,[a-zA-Z\d]
也匹配数字\[[^]]*\]
将匹配,[
然后是非]
字符,然后是]
(\[[^]]*\])?
使其在整个模式中都是可选的\.\w+
将匹配.
和单词字符如果您使用(.*)
而不是(\w+)
贪婪,.*
则会使它与所有内容匹配,因为接下来的两个是可选的。另请参阅:贪婪vs.勉强vs.占有量词
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句