我试图在pandas的帮助下读取csv文件。
该文件包含如下行: 10,5,1,[12,5],[14,7]
csv文件应包含上述示例的5个列
我知道你可以使用正则表达式进行分隔符,我试图在负向前瞻的帮助下解决我的问题。例如:[,](?!(.+)?\])
目的是寻找一个没有后跟“]”的逗号。
但是上面的正则表达式不起作用!这个表达方式有什么问题?或者是否有更简单的方法来分隔列?
谢谢!
答案 0 :(得分:1)
请注意,您的正则表达式包含(?!(.+)?\])
否定前瞻,即使在]
和[
之后存在]
,也会返回true,因为.
可以匹配这些括号。您需要确保]
和[
以外的任何字符后面都没有]
。另外,要删除,
周围的空格,您需要在其周围添加\s*
。
使用
\s*,(?![^][]*])\s*
请参阅regex demo。
<强>详情
\s*
- 0+空白字符,
- 一个,
字符(无需将其放入字符类)(?![^][]*])
- 如果在当前位置的右侧,以下模式匹配,则匹配失败的否定前瞻:
[^][]*
- ]
和[
以外的任何0 +字符]
- ]
字符\s*
- 0+空白字符