在python中使用正则表达式从字符串中检索节



我有类似"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-Zd]也匹配数字
  • [[^]]*]将匹配[,然后是非]字符,然后是]
    • ([[^]]*])?使其可用于整个模式
  • .w+将匹配.和单词字符

如果使用(.*)而不是(w+),则.*的贪婪性将使其能够匹配所有内容,因为接下来的两个都是可选的。另请参阅:贪婪与不情愿与占有量词

最新更新