如果我在csv的第二列中的值以“(”或“)”开头,我怎么删除某个字符呢?我对python很陌生,有人帮我解决这个问题
示例:
0023632fa4a860be8bc85ddf39fc19c3c4c2e6fe,(Java Archive (JAR) 4049-0),Not Supported,
005c41fc0f8580f51644493fcbaa0d2d468312c3,(WIN32 EXE 7-2),Ransom.Win32.TRX.XXPE50FFF027,
至
0023632fa4a860be8bc85ddf39fc19c3c4c2e6fe,Java Archive (JAR) 4049-0,Not Supported,
005c41fc0f8580f51644493fcbaa0d2d468312c3,WIN32 EXE 7-2,Ransom.Win32.TRX.XXPE50FFF027,
我有这个代码使用数据填充
TRIM(TRAILING ')' FROM TRIM(LEADING '('
如何在我的代码中应用它:
with open(fullPath, 'rb') as file:
csv_data = csv.reader(file)
next(csv_data)
这里有一种方法,我替换了字符串中第一次出现的和最后一次出现的“(”和“)”。希望有帮助。你知道吗
输出:
PS:我从here偷了
last_replace
函数使用
lstrip()
和rstrip()
的解决方案编辑
要在新的.csv文件上保存编辑,只需添加:
这是一个学习regular expressions的好机会!正则表达式是一种识别和处理文本模式的方法。Python有一个正则表达式包作为其标准库的一部分。我将假设您在这个答案的其余部分使用python3,其中包名为
re
。你知道吗TLDR对您的问题的回答是:
不过,这是怎么回事?
re.sub()
函数有三个参数,一个正则表达式字符串(由前导的r
表示),一个要替换每个匹配项的字符串,以及要在中替换的字符串。这里的正则表达式是(^\()|(\)$)
。那是什么意思?让我们一步一步来:()
表示一个捕获组,这些圆括号可以用来获取匹配项,但我使用它们作为一种将我们要查找的字符分组的方法。这个正则表达式中有两个捕获组:(^\()
和(\)$)
。你知道吗|
字符,它表示或在正则表达式语言中,所以它在寻找匹配(^\()
或(\)$)
的字符。你知道吗(^\()
:里面有两个东西(好吧,确实有三个,但我们会讲到这一点)。第一个是^
,这就是所谓的锚点,这一个特别说,“只看字符串的开头”。第二个(和第三个)字符是\(
,表示“我想找一个左括号”。因为括号在正则表达式中使用,所以我们必须使用反斜杠字符来“转义”它。你知道吗(\)$)
:包含转义的右括号\)
和其他锚点。这个锚点表示字符串的结尾,就像^
表示开始一样。你知道吗re.sub()
函数表示用'''(即nothing)替换与此模式匹配的任何内容。你知道吗希望有帮助!如果您想更多地使用正则表达式,可以尝试regexr,这有助于我了解它们。你知道吗
相关问题 更多 >
编程相关推荐