re.compile("(?<!\w)Index\s*\(((?:[^()]|\((?:[^()]|(?R))*\))*)\)") 这个正则规则为什么不能识别Index(df['f629'].isin((10025,10075))))>0.5 这个 ,里面出现了双括号,还有应该怎么修改呢
时间: 2023-06-27 22:01:57 浏览: 146
这个正则表达式的意思是匹配形如 Index(...) 的字符串,其中 (...) 是一个参数列表,可能包含一些嵌套的括号。但是,当参数列表中出现双括号时,这个正则表达式就会失效,因为它无法处理嵌套的括号。
如果你想要修改这个正则表达式来处理嵌套的括号,可以使用递归的方式来匹配参数列表中的括号。具体的写法可以参考 Stack Overflow 上的这个回答:https://stackoverflow.com/a/54657137/10728575。
如果你只是想要匹配 Index(df['f629'].isin((10025,10075))))>0.5 这个字符串,可以使用一个简单的正则表达式来匹配,比如:
```
Index\([^)]+\)
```
这个正则表达式的意思是匹配形如 Index(...) 的字符串,其中 (...) 是一个非空的、不包含右括号的字符串。
阅读全文